【わかりやすく解説】PythonのGUIライブラリを比較10選 おすすめはどれ?

効率的な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トレンドで比較(世界)