見出し画像

Pythonで一番簡単な単位変換ツールを3分で作る方法 - TkEasyGUI編

ちょっとしたアプリを素早く作りたい場面があります。そんな時に使うのがPythonです。そして、PythonでGUIアプリを作るなら、TkEasyGUIがオススメです。

以下のような単位変換アプリなら数分で完成です!

坪→㎡への単位変換アプリもあっという間に完成!


Pythonとパッケージ「TkEasyGUI」のインストール

最初に、Pythonをインストールしましょう。Pythonは公式サイトからインストーラーをダウンロードしてインストールするのが便利です。インストーラーをダブルクリックして指示に従っていればインストール完了です。なお、PATHにPythonを登録するをチェックすると良いでしょう。

次に、Pythonで一番簡単にGUIアプリを作るライブラリ「TkEasyGUI」をインストールしましょう。ターミナル(WindowsならPowerShell、macOSならターミナル.app)を起動して、以下のコマンドを実行します。

# Windowsの場合
python -m pip install TkEasyGUI
# macOSの場合
python3 -m pip install TkEasyGUI

プログラムを作成しよう

そして、メモ帳やテキストエディタを起動して、以下のプログラムを貼り付けて、「tubo.py」という名前で保存します。

import TkEasyGUI as eg
# 画面レイアウトを定義
layout=[
    [eg.Text("坪数を入力してください")],
    [eg.Input("8", key="input"), eg.Button("変換")],
    [eg.Input("", key="result"), eg.Button("コピー")],
]
# ウィンドウを表示
with eg.Window("坪→㎡変換", layout) as window:
    for event, values in window.event_iter():
        if event == "変換": # 「変換」ボタンを押した時の処理
            v = float(values["input"])
            m2 = 3.306 * v
            window["result"].update(f"{v}坪 = {m2:.2f}㎡")
        if event == "コピー": #「コピー」ボタンを押した時の処理
            res = window["result"].get()
            eg.set_clipboard(res)
            eg.print(f"クリップボードにコピーしました\n{res}")

Pythonはインデント(字下げ)によって、プログラムの意味が変わるので、インデントが崩れないようにしてください。

そして、Python付属のIDLEを起動して、メニューから[File > Open…]でファイル「tubo.py」を選択します。

IDLEを使ってプログラムを実行しよう

そして、メニューから[Run > Run Module]をクリックします。すると、プログラムが実行されます。すると、以下のようにプログラムが実行されます。

IDLEでプログラムを実行したところ

TkEasyGUIでウィンドウの要素を定義する方法

ここから簡単にプログラムを確認してみましょう。TkEasyGUIというライブラリを使うと、エディタやラベル、ボタンを好きな位置にレイアウできます。

次のように、Pythonのリスト型を使って、要素を二次元リストの中に、並べたい順番に配置します。eg.Textがラベル、eg.Inputが入力ボックス、eg.Buttonがボタンです。

import TkEasyGUI as eg
# 画面レイアウトを定義
layout=[
    [eg.Text("坪数を入力してください")],
    [eg.Input("8", key="input"), eg.Button("変換")],
    [eg.Input("", key="result"), eg.Button("コピー")],
]

そして、このレイアウト情報を指定して、ウィンドウを作成します。ウィンドウを作成した後は「イベントループ」と言って、ユーザーが操作したタイミングで何かしらの処理を行うようにプログラムを記述します。ここでは、ボタンを押した時に単位変換を行い、変換結果をテキストボックスに表示する処理を記述しました。

# ウィンドウを作成
with eg.Window("坪→㎡変換", layout) as window:
    # イベントループを記述
    for event, values in window.event_iter():
        # 変換ボタンを押した時の処理
        if event == "変換":
            v = float(values["input"]) # 値を得る
            m2 = 3.306 * v # 単位変換
            window["result"].update(f"{v}坪 = {m2:.2f}㎡") # 結果を表示

デスクトップアプリ(GUIアプリ)のプログラミングは、とても複雑になりがちなのですが、TkEasyGUIを使えば、このように手軽にアプリを開発できます。

なお、TkEasyGUIについてもっと簡単な使い方が知りたい方は、以下のnoteを参考にしてください。

TkEasyGUIの本書きました!

先日、TkEasyGUI/PySimpleGUIを使って、デスクトップアプリを作ろうという本を書きました。いよいよ発売開始しました✨ 簡単GUI ツール制作から業務自動化まで役立ちます🏃Win/Mac/Linux対応。AI時代のPython本です📖 良かったら書店で手に取ってみてくださいm(__)m


いいなと思ったら応援しよう!