PysimpleGUI開発環境構築

2022-09-24

概要

目的

PythonでのGUIアプリ開発のために、PysimpleGUIの環境構築を行います。

セットアップ

パッケージのインストール

以下のコマンドでパッケージのインストールを行います。

$ pip install PysimpleGUI

パッケージをインストールする前に必ずvenvで仮想環境を構築して、仮想環境内で実行してください。

動作確認

以下のスクリプトファイルを作成します。こちらの公式ドキュメントにもいくつかサンプルコードがあります。

#Sample.py

import PySimpleGUI as sg                                 # パート 1 - インポート

# ウィンドウの内容を定義する
layout = [  [sg.Text("お名前は何ですか?")],     # パート 2 - レイアウト
            [sg.Input()],
            [sg.Button('はい')] ]
# ウィンドウを作成する
window = sg.Window('ウィンドウタイトル', layout)      # パート 3- ウィンドウ定義

# ウィンドウを表示し、対話する
event, values = window.read()                   # パート 4- イベントループまたは Window.read 呼び出し

# 収集された情報で何かをする
print('ハロー ', values[0], "! PySimpleGUIを試してくれてありがとう")

# 画面から削除して終了
window.close()                                  #パート 5 - ウィンドウを閉じる#Sample.py

仮想環境を開いて実行をします。

(venv) $ python Sample.py 

以下の画面が表示されれば成功です。

図 PySimpleGUIサンプル画面

VSCodeを使用して実行する場合は「Visual Studio Codeのデバックでvenvで作成した仮想環境を利用する方法」を参照してください。

その他

PythonのGUI開発環境について

PySimpleGUIを使用する前に他のGUIツールについても検討を行いました。

PyQt

 最初はPyQtの利用を検討しました。以下のコマンドからインストールが出来ます。

$ pip install PyQt5

 Python3.9にまだ対応していないのか、以下のメッセージが表示されてインストールに失敗しました。

ERROR: PyQt5 from https://files.pythonhosted.org/packages/7c/5b/e760ec4f868cb77cee45b4554bf15d3fe6972176e89c4e3faac941213694/PyQt5-5.14.0.tar.gz#sha256=0145a6b7de15756366decb736c349a0cb510d706c83fda5b8cd9e0557bc1da72 has a pyproject.toml file that does not comply with PEP 518: 'build-system.requires' contains an invalid requirement: 'sip >=5.0.1 <6'

kivy

PyQtは商用利用にお金がかかるので、kivyに切り替えを検討しました。しかしこちらもエラーでインストールに失敗します。

$ pip install kivy

Tkinter

 最後にTkinterを使用してみたところ、標準のライブラリということもありこちらは動作をしました。
他の言語に比べるとまだまだ使い勝手は劣りますが、簡単なアプリであれば十分だと思います。

まとめ

PysimpleGUIの環境構築について説明を行いました。色々試してみましたが、Pythonはディスクトップアプリの開発には向いていません。デスクトップアプリケーションを作成するなら、C++, C#, JAVAあたりがまだまだ主流になるかと思います。