PythonでおすすめのGUIライブラリ4選
PythonでGUIアプリケーションを作成するためにはGUIライブラリが必要です。しかしGUIライブラリは種類がたくさんあり、どれを使えば良いのか迷ってしまいます。
そこで今回はPythonで利用できるGUIライブラリの中から、おすすめの4選を紹介します。これからPythonでGUIアプリケーションを作りたいという人はぜひ参考にしてください。
この記事でわかること
・Pythonとは何か
・代表的なGUIライブラリの特徴とメリット、デメリット
・GUIライブラリをどのように選択するか
Pythonとは?
Pythonは文法を極力単純化することで、ソースコードを読みやすく・書きやすくし、プログラマによる差異をなくすことを目的として開発されたプログラミング言語です。現在はver.3.73(2019年3月25日)が最新版として公開されています。
特徴の一つとして、C言語ではコーディングスタイルにしか過ぎないインデントを構文規則として設定することで、可読性を向上するとともにプログラマによるコーディングの違いをなくす仕様になっていることが挙げられます。これにより、バグの発見が容易になる、プログラマの意図がわかり安いなどの利点が得られます。
こうした設計思想から、本体は極力単純でシンプルな機能のみを提供し、その代わりに目的に応じた豊富なライブラリが提供されていますので、必要に応じて利用することになります。今回の記事で紹介するGUIライブラリについても多くの種類が存在しますので、それぞれの特徴と機能を理解した上で最適なものを選択することが大切になります。
Kivy
数あるPythonのGUIライブラリの中で近年もっとも人気が高いライブラリが「Kivy」です。
パソコン用OSであるWindows、Mac、Linuxはもちろん、スマホ用OSであるAndroidとiOS、さらには小型コンピュータのRaspberry Piでも動作します。
単純なGUIだけでなくスマホアプリやゲームなど、これまでのGUIライブラリの枠を超えた様々なアプリが開発可能です。Kivyは標準では付属していないので、別途インストールする必要があります。また、日本での知名度が低く、日本語による情報や参考書がほとんどありません。
さらにPythonとは別にレイアウト用の専用言語「Kv Language」を覚えないといけないなど、全体的に難易度は高めです。ある程度Pythonに慣れている人や、本格的なGUIアプリを作りたい人におすすめです。
<kivyの特徴>
◯メリット
・マウス、キーボード、マルチタッチイベントなどの広範な入力に対応
・MITライセンスで提供されているフリーのオープンソースソフトウエア
・Windows, Mac OS, iOS, Android , Raspberry Piなど幅広いプラットフォームに対応
・グラフィックはOpenGL ESをベースにしているので速い
◯デメリット
・日本語での情報が少ない
・レイアウト専用言語「Kv Language」の習得が必要
Tkinter
Tkinterは「Tk」というGUIツールキットをPythonで利用するためのライブラリです。他のGUIライブラリと異なり、TkinterはPythonに標準で付属しているため、別途インストールする必要がありません。
取り扱いも簡単で動作も軽いです。日本語の情報も比較的多いので、分からないことがあっても調べやすいですし、入門者用の解説サイトも多く存在します。また、Python入門者用の書籍の中でGUIライブラリの代表として紹介されていることも多いです。
ただし、当初はネイティブアプリに見えないぐらいルックアンドフィールがダメだったようで、美しい外見を重視する場合には避けられていたようです。Python2.7からはこの点も改善され、劇的に見た目が向上しましたので今後の利用は増えるかもしれません。
TKinterについて詳しい内容はこちらの記事が参考になります。
PythonのGUIライブラリ「Tkinter」の紹介
TkinterはPython初心者がとりあえずGUIを作りたい場合や、テスト用途でサクッとGUIを作りたい時に向いています。
<TKinterの特徴>
◯メリット
・Python標準なのですぐに使うことができる
・初心者向き
◯デメリット
・ルックアンドフィールが貧弱(現在は改善されている)
・他のライブラリに比べると機能面がやや貧弱
・ベースとなっている言語がCやC++ではなくTcl/Tk
PyQt
C++で開発されているGUIツールキット「Qt」をPythonで利用するためのライブラリです。PyQtもクロスプラットフォーム対応で、さまざまなOSで動作することができます。本格的なGUIアプリを作成する際に検討したいライブラリの1つです。
設計がモダンで、評判の良いデザインツールであるQt Designerが利用できるなどいくつかのメリットがある一方、欠点はKivy以上に日本語の情報が少ないことです。書籍もほとんど発売されていません。したがって、初心者にとっては難易度が高いです。
さらにPyQtは無料で使えるオープンソースソフトウェア(OSS)ですが、ライセンスがGPLです。GPLライセンスのライブラリを商用で使う場合はソースコードを完全公開しないといけないなど、制約があるので気を付けましょう。
<PyQtの特徴>
◯メリット
・設計がモダン、デザイン面での利点が多い
◯デメリット
・商用利用する場合にはロイヤリティが発生する
・日本語での文献が少ない
wxPython(Phoenix)
C++で記述されたGUIツールキット「wxWidgets」をPythonで使うためのライブラリです。長年利用されている定番ライブラリで、日本語の情報が多く初心者でもとっつきやすいです。初心者にもっともおすすめなのはTkinterですが、ある程度Tkinterに慣れたらwxPythonに進んでみると良いでしょう。
wxPythonもクロスプラットフォーム対応なので、WindowsやMacなど幅広いOSで使えます。なお、wxPythonは長らくPython 2専用でしたが、最近ではPython 3で使える「Phoenix」と呼ばれるバージョンが登場しています。通常のwxPythonとインストール方法などが異なるので気を付けましょう。
Pythonの開発者自身も、「TkinterがなければwxPythonが標準としてふさわしい」という趣旨の発言をしているくらいですからその実力は折り紙付きです。
wxPythonに関してはこちらにも詳しい記事があります。
PythonのGUIライブラリ「wxPython」の紹介
<wxPythonの特徴>
◯メリット
・大きなコミュニティがあり、日本語の文献も入手しやすい
・機能も充実しており、デザイン面でも満足できる仕様
・商用利用が可能
◯デメリット
・ver.2とver.3が混在して利用されているので注意が必要
まとめ
以上、PythonでおすすめのGUIライブラリ4選を紹介しました。初心者がまず始めるには「Tkinter」、Android向けの開発などを想定しているなら「Kivy」、日本語文献が多く安心して利用できるのが「wxPython」、デザインを重視し英文資料でも苦にならない方であれば「PyQt」など、目的やレベルに合わせて選択すると良いでしょう。自分の目的を明確にし、それに適した機能が使えるかは非常に重要な点です。適したツールを選択することで、開発にかかるコストや時間を節約することができます。
【追記】2019/7/19アップデート
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!
建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!
CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中
デジタルツインと i-Constructionについての ホワイトペーパー配布中!
❶デジタルツインの定義
❷デジタルツインが建設業界にもたらすもの
❸i-Constructionの概要
❹i-Constructionのトップランナー施策