PythonでのGUIアプリ開発の際に困りませんか?
「どのフレームワークを使えばいいのか?」
選択肢が多すぎると、逆に悩んでしまうというヤツです。
今回は、この悩みを解決する方法を解説します。
タイトルにもありますが、PySimpleGUIに関する内容です。
本記事の内容
- PythonのGUIアプリ開発における混沌
- PySimpleGUIとは?
- PySimpleGUIのシステム要件
- PySimpleGUIのインストール
- PySimpleGUIの動作確認
それでは、上記に沿って解説してきましょう。
PythonのGUIアプリ開発における混沌
まず、GUIフレームワークを明確にしておきましょう。
ここで言うGUIフレームワークとは、以下のことです。
- tkinter
- Kivy
- Qt
- WxPython
- Remii(ブラウザベース)
PythonでGUIと言えば、tkinterが最も人気です。
本サイトでも、tkinterの将来性に関して次の記事で言及しています。
ただ、tkinterはiOSやAndroidへ対応していません。
そこでiOSやAndroidで動くアプリを開発するなら、Kivyとなります。
iOSやAndroidへの対応を考えると、Kivyと同じくQtも候補です。
しかし、Qtは商用とする場合にライセンスが問題になります。
ただ、Qtには処理速度の点で優位があります。
それは、QtがC++をベースにしているからです。
その点では、WxPythonも根本はC++がベースとなります。
同じように、WxPythonの特徴には処理スピードがありますね。
このようにざっと見ただけでも、PythonのGUIレームワーク事情は複雑です。
私自身もいろいろな可能性を考慮して、次の記事を作成しています。
なお、QtをPythonから利用するライブラリにでは次の二つが有名どころです。
- PyQt
- PySide
各ライブラリ毎にコーディングの仕方は異なります。
ただ、利用するGUIフレームワークがQtという点では同じです。
こんな状況なら、GUIフレームワークの選択(さらにライブラリも)に迷いませんか?
迷うなら、一つの解を示します。
PySimpleGUIです。
次に、PySimpleGUIについて説明します。
PySimpleGUIとは?
救世主の登場です。
その救世主の名は、PySimpleGUIと言います。
PySimpleGUIは、各GUIフレームワークの差を吸収してくれます。
簡単に言うと、同じコードが各フレームワークで動くのです。
例えば、tkinterで動くように書いたコードがあるとします。
基本的には、このコードがそのままQtで動くのです。
(※完全移植ができないケースもあるでしょう)
ただし、あくまでPySimpleGUIを用いての話です。
tkinter独自の関数などを用いたコードがそのまま動くという意味ではありません。
よって、PySimpleGUI独自のルールを習得する必要はあります。
でも、これぐらいの学習コストは仕方がないと割り切りましょう。
PySimpleGUIさえ覚えれば、複数のGUIフレームワークを対象にできます。
肝心の対象となるGUIフレームワークは以下。
- tkinter
- Qt
- WxPython
- Remii(ブラウザベース)
上記で挙げた中では、Kivy以外がすべて対象となります。
Kivyもこのファミリーになってくれれば最高なんですけどね。
こうなってくると、「PySimpleGUIか?Kivyか?」の二択になります。
ここまで来ると、混沌は消え去ったと言ってもよいでしょう。
あとは、各自の判断ですね。
以上が、PySimpleGUIの説明です。
次に、PySimpleGUIのシステム要件を確認します。
PySimpleGUIのシステム要件
最新のPySimpleGUIは、バージョンが4.34.0となります。
バージョン4.34.0は、2021年1月19日に公開されています。
PySimpleGUIは、以下のOSのどこでも動きます。
クロスプラットフォーム対応というヤツです。
- Windows
- macOS
- Linux
PySimpleGUIで開発したプログラムは、各GUIフレームワークのサポートOSに依存します。
この部分は、勘違いしないように気を付けましょう。
PySimpleGUIのサポートするPythonのバージョンは、Python 3.4以降です。
現時点でPythonの最新となるバージョン3.9にも対応済となります。
なお、今回の検証を行う環境は以下。
>python -V Python 3.8.6
以上、PySimpleGUIのシステム要件の確認でした。
では、PySimpleGUIをインストールしていきましょう。
PySimpleGUIのインストール
最初に、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.0.1 setuptools 53.0.0
次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip
では、PySimpleGUIのインストールです。
PySimpleGUIのインストールは、以下のコマンドとなります。
pip install PySimpleGUI
インストールは、一瞬で完了します。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ----------- ------- pip 21.0.1 PySimpleGUI 4.34.0 setuptools 53.0.0
PySimpleGUIの最新バージョンが、インストールされました。
他に依存するパッケージは、ありません。
以上、PySimpleGUIのインストールでした。
最後に、PySimpleGUIの動作確認を行います。
PySimpleGUIの動作確認
公式で公開されているコードです。
import PySimpleGUI as sg filename = sg.popup_get_file('処理したいファイルを入力してください') sg.popup('入力した', filename)
上記を実行すると、以下が表示されます。
これは、スゴイ・・・
何がスゴイのかと言うと、コード量が圧倒的に少ないのです。
また、その辺は別の記事で解説していきます。
でも、これがQtでもWxPythonでも動くわけですよね。
いやいや、素晴らしいです。
なお、上記コードはtkinterをGUIフレームワークとして動いています。
次のimport文で切り替えが可能です。
import PySimpleGUI as sg
例えば、次のように変更します。
import PySimpleGUIWeb as sg
ただし、これだけでは動きません。
importエラーが出るだけです。
この部分についても、上記で述べたように別記事で解説します。
今回は、これにて完了です。