TkEasyGUI - Pythonで最も素早くデスクトップアプリを創るライブラリ
先日、マイナビニュースにも書きましたが、Pythonで最も素早くデスクトップアプリを創るライブラリ「TkEasyGUI」を公開しました。(もともとPySimpleGUIが突如オープンソースを廃止したことをきっかけに開発されました。)
Webアプリ全盛の時代ではありますが、Windows/macOS/Linuxのローカル環境で手軽に動かせるデスクトップアプリを作りたい場面は多いものです。
それで、Pythonを使って最も早くGUIを構築できるライブラリとして、TkEasyGUIを開発しました!
TkEasyGUIのインストール
ターミナルで以下のコマンドを実行します。
$ pip install TkEasyGUI
TkEasyGUIで一番簡単なプログラム
TkEasyGUIを使った簡単なサンプルは次の通りです。下記のように、「eg.popup("メッセージ")」と記述すると、ポップアップと呼ばれるウィンドウ(ダイアログ)を表示できます。
import TkEasyGUI as eg
eg.popup("鉄が鉄を研ぐように,人は友を研ぐ")
上記のプログラムを実行すると、次のように表示されます。
とても簡単ですよね。続いて、簡単な入力を求めるポップアップを使ってみましょう。
import TkEasyGUI as eg
name = eg.popup_get_text("名前を入力してください")
eg.popup("こんにちは," + name + "さん")
上記を実行すると下記のように表示されます。
そして、任意のボタンを配置して質問することができます。
import TkEasyGUI as eg
food = eg.popup_buttons(
"今から何を食べますか?",
buttons=["ラーメン", "カレー", "うどん"])
eg.popup("では," + food + "を召し上がってください")
ファイルやフォルダの選択ポップアップ
デスクトップアプリでは、ファイルやフォルダを指定したい場面が多くあります。次のように利用できます。
import TkEasyGUI as eg
# ファイルの選択
selected_file = eg.popup_get_file(
"ファイルを選んでください。",
file_types=[("テキストファイル", "*.txt"), ("すべてのファイル", "*")])
eg.popup("選んだファイルは" + selected_file + "です。")
# フォルダの選択
selected_dir = eg.popup_get_folder("フォルダを選んでください。")
eg.popup("選んだファイルは" + selected_dir + "です。")
OSのファイル選択ボックスが開いて、ファイルを選択できます。
他にも、いろいろなポップアップ・ダイアログが使えます。こちらに列挙してあります。
カスタムウィンドウを設計したい時
そして、TkEasyGUIが威力を発揮するのは、カスタムウィンドウを使う場面です。手軽にウインドウを設計できます。
import TkEasyGUI as eg
# ウィンドウの作成 --- (*1)
layout = [
[eg.Text("名前を入力してください。")],
[eg.Input("クジラ" ,key="-name-")],
[eg.Button("OK"), eg.Button("キャンセル")]
]
window = eg.Window("テスト", layout=layout)
# イベントループ --- (*2)
while window.is_alive():
# イベントと値を取得
event, values = window.read()
# OKボタンを押した時
if event == "OK":
name = values["-name-"]
eg.popup("こんにちは、" + name + "さん。")
break
window.close()
上記のプログラムを実行すると、次のように、二次元リスト型の変数layoutに指定したのとほぼ同じレイアウトでウィンドウを表示できます。
プログラム見れば分かりますが、(*1)のeg.Windowでウィンドウを作成し、(*2)のイベントループで、ウィンドウの動きを制御します。
ユーザーがウィンドウ内の「OK」ボタンを押すと、(*2)のイベントループで、変数eventに"OK"が代入されます。そして、変数values["-name-"]に、keyに"-name-"を指定したeg.Inputの値が入ります。
使えるGUI部品の一覧
指定できるGUI部品には次のようなものがあります。(*1)のlayoutに以下のようなオブジェクトを指定することで、任意のGUI部品を配置できます。
eg.Text … テキスト
eg.Input … 一行入力ボックス
eg.Button … ボタン
eg.Multiline … 複数行入力ボックス
eg.Listbox … リストボックス
eg.Table … グリッドテーブル
eg.Combo … コンボボックス
もちろん、上記だけではありません。いろいろなGUI部品が使えます。こちらに列挙してあります。
まとめ
以上、簡単でしたが、TkEasyGUIについて紹介してみました。名前の通り、とっても簡単ですよね!良かったら使ってみてください。
# 本書きました!(2024年7月)
TkEasyGUIとPySimpleGUIに関する書籍「Pythonでつくるデスクトップアプリ」を書きました✨ 良かったら見てみてください↓↓↓