PySimpleGUIはPythonのGUIアプリ開発における救世主!?

PySimpleGUIはPythonのGUIアプリ開発における救世主!? プログラミング

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エラーが出るだけです。

この部分についても、上記で述べたように別記事で解説します。
今回は、これにて完了です。

タイトルとURLをコピーしました