PySimpleGUIをexe化してGUIアプリ作成

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化してデスクトップアプリを作る。

作り方

pip install PyInstaller
pyinstaller -wF test.py

pyinstallerをpythonファイル名を指定して実行することでexeファイルが作成可能。
デスクトップにアイコンが作られ、それをダブルクリックすることでアプリが起動。

サンプルコードが豊富

PySimpleGUIは、GitHubにデモプログラムが豊富にあるので、コードをダウンロードして動作させてみたり、コードを眺めたりすると勉強になる。

また、MatplotlibやOpenCVと連携したサンプルプログラムもたくさんある。

コメント