効率的なGUIアプリケーションの開発するには、かかすことできない「ライブラリ」。
Python(パイソン)にもGUIアプリケーション作成に適したライブラリがあります。
PythonのGUIライブラリを紹介します。
目次
GUIライブラリとは?
GUIとは、Graphical User Interface(グラフィカル・ユーザ・インタフェース)の略で、コンピュータグラフィックとマウスを直感的な操作ができるインターフェイスのことです、一方、文字列の操作を「CUI」と言います。
とは、GUIアプリケーションを開発するときに使うライブラリのことです。
PythonのGUIライブラリ
TkInter
Python標準付属のGUIライブラリ
「Tcl/Tk(ティクル・ティーケー)」のGUIライブラリのTkをPythonで利用できるようにしたものです。
- TkInterはPythonの標準で付属しているGUIライブラリ
- クロスプラットフォームでGUIアプリを作成
kivy
最もメジャーなPythonGUIライブラリ
Kivy: Cross-platform Python Framework for NUI Development
kivyは、今、最も人気のある(2017年9月現在)GUIライブラリです。
- Windows、Mac、Linuxだけでなく、Android、iOSでも動作
- Raspberry Piのサポート
- スマホアプリやゲームの作成にも向いている
- OpenGL(3Dグラフィックスを扱うライブラリ)を使用
Flexx
GitHub – zoofIO/flexx: Write desktop and web apps in pure Python
PythonのGUIライブラリは、「wxWidgets」「libavg」などのように「C++」等他言語で書かれたライブラリを元になっているものが多くあります。FlexxはPythonで作成されている
- Webの技術を利用し、Pythonとブラウザがあればどこでも動作
wxPython
Welcome to wxPython! | wxPython
「wxWidgets」という「C++」で書かれたクロスプラットフォームGUIツールキットがあり、wxPythonは、そのバインディングです。
クロスプラットフォームとは、異なるプラットフォームでも互換性があること。例えば、Linux, Windows, Mac OS Xなど、どのOSでも動作すること
ダウンロード・インストール
https://wxpython.org/download.php#msw
PySide
https://wiki.qt.io/Category:LanguageBindings::PySide::Downloads
Qt(キュート)という「C++」言語で書かれたアプリケーション・ユーザインタフェース (UI) フレームワークがあります。
「PySide」は「Qt」のラッパーです。
PySideとの違いは、PyQtは商用利用が可能であることです。
ラッパーとは、プログラムのクラスや関数、データ型などを違う環境でも使えるようにしたものです。
PyQt
ダウンロード・インストール
https://riverbankcomputing.com/software/pyqt/download
Qt(キュート)という「C++」言語で書かれたGUI フレームワークがあり、「PyQt」は「Qt」のPythonラッパーです。
「Qt」と元になっているという点ではPySideに似ています。PyQtは、GNU GPLにライセンスのため、商用利用がしずらい点があります。
GNU General Public License(GNU GPLもしくは単にGPLとも)とは、GNUプロジェクトのためにリチャード・ストールマンにより作成されたフリーソフトウェアライセンスである。 八田真行の日本語訳ではGNU 一般公衆利用許諾書と呼んでいる。
GNU General Public License – Wikipedia
PyGTK | PyGObject
ダウンロード・インストール
https://wiki.gnome.org/Projects/PyGObject
「GTK+」というLinuxでよく使われているGUIツールキットがあり、「PyGTK」の「GTK+」ラッパーです。
- KivyやPyQtと比較して、PyGUIはUnix、Macintosh、Windowsプラットフォームのためにかなり簡単です。
ニュージーランドのCanterbury大学のGreg Ewing博士によって開発されたMVCフレームワークは、できるだけ簡単にPythonエコシステムに適合することに重点を置いています。 - プラットフォームの目的の1つは、Pythonアプリケーションとプラットフォームの基礎となるGUIの間にできるだけ小さなコードを挿入して、アプリケーションのディスプレイに常にプラットフォームのネイティブGUIが反映されるようにすることです。あなたがGUIを学ぶためのシンプルで素早い方法をとっているのであれば、これで始めましょう。
PyGUI
「PyGUI」は、ニュージーランドのCanterbury大学のGreg Ewing博士によって開発されたMVCフレームワークです。
libavg
libavgは「C ++」で書かれたPythonからスクリプト化されたサードパーティのライブラリです。
Python変数としての表示要素のプロパティ、フル機能のイベント処理システム、タイマー(setTimeout、setInterval)、ロギングのサポートなどがあります。
- マルチプラットフォーム対応(Linux、Mac OS X、Windows)
- オープンソース
- LGPLのライセンスを受けている
- OpenGLを使用し、ハードウェアアクセラレーションを利用
Pyforms
PyformsはGUIアプリケーションを開発するためのPython 2.7 / 3.xのクロス環境フレームワークです。
- PyQt、OpenGL、その他のライブラリに基づいて、ControlBaseオブジェクトに基づく22個のコントロールを提供。
- ビデオプレーヤー、Webブラウザ、OpenGLも含まれれる
PythonのGUIライブラリの人気動向をGoogleトレンドで比較
PythonのGUIライブラリの人気動向を、Googleのツール「Googleトレンド」で比較しました。
GUIライブラリをGoogleトレンドで比較(世界)