Python で GUI作成ライブラリまとめ(TkInter、Qt、Kivy、WxPython)

毎年、仕事量が1.5倍ぐらい増えてる。

もう一つの課レベルの仕事は十分にやってるよ。

流石に辛くなってきた……。

 

という状態で、最近の週末は英気を養うのに専念してる。

 

週末に何か作りたくなるなんて、ワーカホリックだよ。ブログ更新だって辛い。

5chまとめサイトでも見ながら、ボーっとするに限る。

【正論】プログラミング初心者にPython勧めるのはやめておけ : IT速報
1:風吹けば名無し 2022/11/10(木) 12:31:17.67 ID:Cz9GJw7k0 こういう騙されてプログラミング始めるような可哀想な人間作るな

ふむ。

Pythonは初心者に進めないほうがよいのねーー。

なんでだっけ?

 

どうやら「GUIアプリが作れずコンソールだと楽しくない」というのが理由っぽい。

 

んな訳がないでしょ!

どんなゆとり世代だよ、調べろよ!

Python でGUIアプリを作成する

GUIとは、「Graphical User Interface」のことで視覚的に操作することが出来るUIのこと。

PythonでGUIを作成する際は、

 

TkInter、Qt、Kivy、WxPythonなど

 

を使う。

簡単な実装の「PySimpleGUI」も紹介する。

ライブラリ ライセンス 特徴
TkInter PSF(標準) インストール不要、機能が少ない
Qt PyQt(GPL)
pyside(LGPL)
多機能でデザインがいい
Kivy MIT GUIライブラリの中で近年もっとも人気が高い
WxPython wxWindows C++で記述されているため高速
PySimpleGUI LGPL3 コードの書き方がシンプルで直感的でわかりやすい

標準ライブラリ(TkInter)以外は、どのライブラリでも、クロスプラットフォームで高速。

なお、Pythonは2022年10月3日にリリースのPython 3.11を使って試している。

【Python GUI 1】 Tkinterについて

Tkinterは標準のPythonのGUIライブラリ。

個人的に考えるメリット、デメリットは以下の通り。

 

【メリット】

  • 標準だからインストール不要
  • サンプルはそこそこ多い

【デメリット】

  • ウィジェット(UIパーツ)を配置する際、種類、オプション、レイアウトと順を追って設定しないといけない
  • ウィジェットの配置が増えると、レイアウトがコードを見てもよくわからない

ファイル名を「tkinter.py」などにすると「ImportError: cannot import name ‘messagebox’ from partially initialized module ‘tkinter’」というエラーに悩まされるので注意を。

【Python GUI 2】 Qtについて

仕事でもお世話になっているライブラリ。

PyQtとPySideはいずれも、C++向けGUIフレームワークのQtのPythonラッパー。

ライセンスを考えてPySideを使う。PySide は元々 QT4 向けのライブラリだが、QT5 に対応するために新たに PySide2 が開発された。

使うには、まずはインストール……でエラー。

次のページを見ると今のところPython3.6からPython3.9まででしかサポートしてない。

Qt for Python - Qt Wiki

対応が遅いなぁ。

とりあえず、ソースコードはこんな感じになる。

次なようなGUIが表示されるらしいけど未確認。

【Python GUI 4】 kivy

これは使ったことが無い。

標準ライブラリではないので、各自インストールする必要がある。

インストールしてみるとエラー。

どうやら、現在Python3.11で利用可能なkivy は配布されてないらしい。

残念だけど、ソースコードはこんな感じになる。

仮に実行したら次のようなGUIが表示される。

デザインはモダンな印象を受ける。

【Python GUI 5】 WxPython

Python GUIで最初に出会ったライブラリ。

こちらも標準ライブラリではないので、各自インストールすること。

これもエラー。全然、ライブラリの対応が追いついてないじゃん。

でソースコードはこんな感じになる。

実行できたら次のようなGUIが表示されるんだってさ。

【Python GUI 6】 PySimpleGUI

軽量なラッパーとして利用されている。

これも標準ライブラリではないので、各自インストールが必要。

ソースコードはこんな感じになる。

これは動作した。

ゲーム「マインスイーパー」の実装だけど、コードは短い。

GUIは次のように表示される。

Python スクリプトを exe ファイル (実行ファイル) 化

せっく作ったGUIだから皆に使ってもらいたいよね。

「PyInstaller」を使用して、Python スクリプトを exe ファイル (実行ファイル) 化し、Python の実行環境がない Windows 上でも実行できるようにしてみよう。

まずはpyinstallerをインストールしていく。

 

次に、exeファイル化するスクリプトファイルを準備する。

コンソール画面を非表示にするには次のように行う。

 

 

更に、単独ファイル化は次のように行う。

何やらよく分からないコードが次々と現れてるが、じっと待機する。

そして、対象のディレクトリ内に幾つかのファイルが自動生成される。

 

1分くらい待たされたが、無事処理は終了。

これでexeファイルが出来上がっているはずなので、distと書かれたフォルダを開く。

すると中にtkinter_ui.exeがある。

 
 

9MBのファイル

がね。

大きいな……

 

そして、

PySimpleGUI で作ったアプリは60MB

 

まじかよーーーーー

デカすぎ。

おわりに

ネット上からダウンロードできるフリーソフトのexeでも大きくて2~3MBくらいのはずだけど……、ライブラリ等を包含しているためにサイズが大きいのだろう。

そして起動はめっちゃ遅い。

あまりEXE化はオススメできない。

 

まぁ今回は「PythonでGUI開発できる」ことを伝えたかったので、その点では問題ないか。

あれ?

僕、休日はゆっくり休むんじゃなかったっけ?

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