PySimpleGUIでデスクトップアプリを作成

PySimpleGUIとは?

  • PySimpleGUIは、Pythonで扱うGUIライブラリ。
  • Tkinterで書くよりも、短いコード量でかける。
  • 特徴として、リストを使用してUIのレイアウトを配置する。
  • pipで簡単にインストールすることができる。
pip install pysimplegui

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()

PySimpleGUIは、プログラムの1行1行が、GUIの1行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='実行ボタン')]
]

PySimpleGUIはサンプルプログラムが豊富

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

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

PyInstllerでpythonファイルをexe化

  • PySimpleGUIで作ったGUIアプリをexe化してデスクトップアプリに変換する。
  • 「Pyinstaller」というライブラリで実現可能。
  • デスクトップにアイコンが作れて、ダブルクリックすることで起動可能。
  • pyinstallerを、pythonファイル名を指定して実行することで、exeファイルを作成可能。
pip install PyInstaller
pyinstaller -wF test.py

コメント