豊富なライブラリがあり、AIや自動化などで人気のあるPython。
プログラムを他の人に使ってもらったり、効率的に動かすために、GUIをつけたい場合があると思います。
今回はライブラリ選びの助けとなるように、それぞれの特徴をまとめました。
是非、GUI選びの指針としてご活用ください。
【本記事の構成】
- GUIとは
GUIについてざっくり説明します。知っている人は飛ばしてください。 - PythonのGUIライブラリ13個を比較
Pythonの13個のライブラリについて、その特徴やライセンス、参考URLなどをまとめました。 - 初心者へのオススメ
Pythonやプログラミングの初心者にも扱いやすいような、おすすめのライブラリのご紹介です。 - GUIのサンプル画面と使い方
いくつかのライブラリについて、実際に動かしてみたので、サンプル画面などを紹介しています。
それでは、どうぞ。
GUIとは
まずは、GUIについて簡単に説明します。
GUIとCUI
GUI(Graphical User Interface)は、主にマウスなどでグラフィカルに操作するユーザーインタフェースのことです。
Windowsデスクトップやブラウザ、ゲームなど、一般的に使われているソフトウェアはGUIが多いですね。
マウスでクリックしたり、スマホやタブレットなら画面にタッチをすることでソフトウェアを動かします。
CUI(Character User Interface)は、主にキーボードで文字(コマンド)を入力して操作するユーザーインタフェースです。
コマンドプロンプトやサーバー用のLinux OSのように、専門のエンジニアが使うことが多いです。
私たちはコマンドを打ち込み、コンピュータはコマンドに応じて処理します。
GUIのメリット
GUIのメリットは、ユーザが直感的に操作できることが挙げられます。
CUIのように専門のコマンドを覚える必要が無く、より簡単にソフトウェアを使ってもらえます。
CUIと比較し、画面の立ち上げなどの処理が必要なため、CUIと比較して重いことがデメリットとされてきましたが、
今はコンピューターの性能が上がっているためほとんど気にならないと思います。
PythonのGUIライブラリ13個を比較
ソフトウェアを作る際には、プログラムを1から書くことはほとんどなく、
ライブラリ(他の方が作ったプログラム)を活用してプログラミングをします。
特にpythonは、ライブラリがとても沢山あります。
GUIだけでも、ライブラリが複数あり、今回はその13個を一覧にまとめました。
pythonのGUIライブラリ13個を比較
ライブラリ | 特徴 | ライセンス | 参考URL ドキュメント・GitHub・実装例など |
---|---|---|---|
Tkinter | pythonの標準ライブラリのため追加のインストール不要
Tcl/Tk のPythonバインディング 参考書籍や多くの参考Webサイトがあり、勉強しやすい |
Python標準 | ドキュメント |
Kivy | KV言語で直感的にレイアウトが作れる
モダンな見た目 MITライセンスのため使いやすい |
MITライセンス | ドキュメント |
PyQt | Qt(キュート)のPythonバインディング
豊富なウィジェット等、機能が充実してる 非商用ではライセンスが厳しい |
GPL(PyQt5)
商用もあり(PyQt5) |
GitHub |
PySide | Qt(キュート)のPythonバインディング
PyQtと比較してライセンスが使いやすい |
LGPL | GitHub |
wxPython | wxWidgetsのPythonバインディング | wxWindows License | 公式HP(英語) |
turtle | 図を描くことに特化 | Python標準 | ドキュメント |
PyGUI | 簡単だが機能少なめ
MITライセンスのため使いやすい |
MITライセンス | GitHub |
PyOpenGL | python用OpenGL | OpenGL-ctypes License | GitHub |
PySimpleGUI | 簡単にGUIが作成可能 | LGPL | ドキュメント(英語) |
PyGTK | GTKのPythonバインディング | LGPL | GitHub |
Flexx | Webアプリケーション作成可能 | BSD 2-Clause | ドキュメント(英語) |
pywebview | htmlでGUIを作成可能 | BSD 3-Clause | GitHub |
Pygame | ゲームに特化 | LGPL | GitHub |
※2020/2/2時点
再配布する場合などはライセンスに注意しましょう。
初心者へのオススメ
特にPython初心者の方には、下記のライブラリをオススメします。
おすすめ1 Tkinter
こちらはPythonの標準ライブラリであり、追加のライブラリインストールが不要ですぐに始められます。
メジャーなライブラリのため、日本語の記事も多く存在します。
書籍でも取り扱っているため、勉強がしやすいと思います。
- Tkinterを使った小~中規模のデスクトップアプリの開発が目標
- Pythonの基礎から解説し、本を読み終えるころには公式ドキュメントが読めるように
- 書籍で使うソースコードはGit Hubで公開
おすすめ2 PySimpleGUI
こちらは、Tkinterよりも少ないコードでプログラムを書くことができるため、
サクッとGUIを試してみたいときなどに良いかと思います。
こちらは公式ドキュメントやデモプログラムが充実しているため、勉強がしやすいかと思います。
自由度が他のライブラリと比較して少ないため、細かい調整などには向いていないかと思います。
おすすめ3 Pygame
こちらはゲーム作成に特化したGUIとなっています。
ゲーム作りを通して楽しくPythonを勉強したい方にオススメです。
こちらも、書籍で取り扱っているため、勉強がしやすいかと思います。
- プログラム未経験の人でも、基礎からゲーム開発について学べます。(Pygameは10章から)
- 実践に向けたゲーム開発の基礎・ノウハウが学べます。(Pygameは5章から)
見た目も重要ですよね!
GUIのサンプル画面と使い方
最後に、私が実装してみたpythonライブラリについて、「Hello World」などのサンプル画面と、使い方の記事をまとめました。
ご参考いただければと思います。
Tkinter
サンプル画面
参考記事
■【Python】GUIを試してみた【tkinter編】※初心者向け
Kivy
サンプル画面
参考記事
■【Python】GUIを試してみた【Kivy編】※初心者向け
PyQt
サンプル画面
参考記事
■【Python】GUIを試してみた【PyQt編】※初心者向け
wxPython
サンプル画面
参考記事
■【Python】GUIアプリを作ってみる【wxPython編】※初心者向け
Pygame
サンプル画面
参考記事
■【Python】GUIアプリを作ってみる【Pygame編】※初心者向け
PySimpleGUI
サンプル画面
参考記事
■【Python】GUIアプリを作ってみる【PySimpleGUI編】※初心者向け
まとめ
PythonのGUIライブラリを一覧で比較してみました。
- Tkinter
- Kivy
- PyQt
- PySide
- wxPython
- turtle
- PyGUI
- PyOpenGL
- PySimpleGUI
- PyGTK
- Flexx
- pywebview
- Pygame
今後いろいろ試してみたいと思います。
おすすめの本
初級者⇒中級者へのステップアップに、、、
プログラマー必読書はこちらでご紹介中です。