PySimpleGUIとは?
- PythonのGUIライブラリ。
- Tkinterよりも短いコード量でかける。
- リストを使用してUIのレイアウト配置できる。
- pipで簡単にインストール可能。
インストール方法
pip install pysimplegui
PySimpleGUIの使い方
デスクトップアプリの作成例
ソースコード
import PySimpleGUI as sg
# セクション1 - オプションの設定と標準レイアウト
sg.theme('Dark Blue 3')
layout = [
[sg.Text('Python GUI')],
[sg.Text('名前', size=(15, 1)), sg.InputText('○○〇×××')],
[sg.Text('住所', size=(15, 1)), sg.InputText('△△△△村')],
[sg.Text('電話番号', size=(15, 1)), sg.InputText('xxx-xxx-xxx')],
[sg.Submit(button_text='実行ボタン')]
]
# セクション 2 - ウィンドウの生成
window = sg.Window('住所を入力', layout)
# セクション 3 - イベントループ
while True:
event, values = window.read()
if event is None:
print('exit')
break
if event == '実行ボタン':
show_message = "名前:" + values[0] + 'が入力されました。\n'
show_message += "住所:" + values[1] + 'が入力されました。\n'
show_message += "電話番号:" + values[2] + "が入力されました。"
print(show_message)
# ポップアップ
sg.popup(show_message)
# セクション 4 - ウィンドウの破棄と終了
window.close()
プログラムの1行がGUIの1行に対応してるので、見やすい。
layout = [
[sg.Text('Python GUI')],
[sg.Text('名前', size=(15, 1)), sg.InputText('○○〇×××')],
[sg.Text('住所', size=(15, 1)), sg.InputText('△△△△村')],
[sg.Text('電話番号', size=(15, 1)), sg.InputText('xxx-xxx-xxx')],
[sg.Submit(button_text='実行ボタン')]
]
PyInstllerでpythonファイルをexe化
PyInstallerとは?
Pythonアプリと依存するライブラリなどのファイルを一つのパッケージにまとめる。
ユーザーはパッケージ化されたアプリ(exeファイル)を実行することができる。
PySimpleGUIで作ったプログラムをexe化してデスクトップアプリを作る。
作り方
・コマンドプロンプトを開く
・pythonファイル(例:test.py)が保存されているフォルダに移動する
・以下を実行する
pip install PyInstaller
pyinstaller -wF test.py
pyinstallerをpythonファイル名を指定して実行することでexeファイルが作成可能。
「dist」というフォルダが作成され、その中に.exeファイルが作成される。
このexeファイルを実行することでデスクトップアプリが起動。
pyinstallerでエラー
エラー
‘pyinstaller’ は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
解決した方法
- 一旦pythonをアンインストール。
- python公式サイトからダウンロードしてインストール。
- その後、以下を実行。
python -m pip install --upgrade pip
pip install PyInstaller
pyinstaller -wF test.py
どうやらwindows10に最初から入っている「Microsoft Store版python」が良くないらしい。
サンプルコードが豊富
PySimpleGUIは、GitHubにデモプログラムが豊富にあるので、コードをダウンロードして動作させてみたり、コードを眺めたりすると勉強になる。
また、MatplotlibやOpenCVと連携したサンプルプログラムもたくさんある。
コメント