Python3で使えるおすすめなGUIライブラリ 5選

2019年12月4日

みなさまおはこんばんにちは、せなです

今回はPython3で使えるGUIライブラリの中からおすすめなものを5つ紹介したいと思います

詳しい使い方などについては後日記事にするかもです

おすすめGUIライブラリ

Tkinter

Pythonの中では最も有名であろうGUIライブラリがTkinterです

Tkinterは標準でPythonに導入されているので使ったことがあるという方も多いと思います

Tkinterは元々Tcl/Tkというスクリプト言語をPythonで利用できるようにしたものなので、見た目などが簡素で拡張性もあまりよくないです

ですが簡単なインターフェースを実装するなら、現在でもバリバリの現役です

Googleのトレンドランキングなどでもぶっちぎりの一位を記録し続けています

Google Trendsの比較データより(2019/12/1)

初めてGUIを触ってみようと思うけどどれがいいのかなって、考えている方におすすめです

以下の記事でTkinterの使い方を解説していますので、良ければご一読ください

リンク:PythonのGUIツールキット「Tkinter」の簡単な使い方

メリット

  • 最も日本語資料が多い
  • 標準で使えるので、入門に最適
  • 初心者におすすめ

デメリット

  • 機能が他ライブラリと比べると心もとない
  • ベースがスクリプト言語なので動作が遅い(かも?)
  • 可読性があまり良くない(コードが煩雑)

Kivy

KivyはTkinterに続いて人気が高いGUIライブラリです
海外ですとKivyもかなり知名度が高いのですが、日本では知名度はそこまでありません

理由としてはKivyのまとまった情報があまり無いからです

また、書き方も特徴的で、CSSに似たKivyの独自言語(Kv Language)を使用してレイアウトの作成を行います

そういった点からKivyは比較的、敷居が高いと思われます

ですが、もちろんKivyには良い所がたくさんあります

まず大前提として、利用できるプラットフォームがTkinterよりも多いです
(Android,IOS,Windows,Mac,Linux)

OpenGL(3Dグラフィックスライブラリ)に対応しているので、ゲームとかスマホアプリも(頑張れば)作れます

さらに(個人的には)慣れるとTkinterよりも可読性が高いのでコードがキレイに見えます

※国内では2位のシェアを獲得していますが世界的に見ると後述するPyQtのほうが高いシェアを持ってるようです
(2020/10/25追記)kivyは日本語の入力に公式で対応していないとのご指摘を受けましたので、お気を付けください。

メリット

  • マルチプラットフォームに対応
  • そこそこ早く動作する
  • フリーソフトウェアなのでライセンスを気にしなくていい

デメリット

  • 日本語入力が、公式対応されていない
  • 日本語の資料が少ない
  • 専用言語を習得する必要がある

以下の記事でKivyの使い方を記事にしていますので、良ければご一読ください

リンク:PythonのGUI「Kivy」の使い方をKv Languageを使って説明します

PyQt

PyQtはクロスプラットフォームを採用しているGUIライブラリで、PyQt5からは、
Android,IOS,Windows,Mac,Linuxに対応しています(PyQt4まではAndroidとIOS未対応)

PyQtに使用されているQtはC++のクロスプラットフォームフレームワークでGUIツールの開発に使われています

C++を使用しているので他のGUIライブラリよりも早く処理を行うことができます
また、モジュールも大量に持っているので開発も用意に行うことが可能です

欠点としてはQtは営利目的での利用に制限がある点です

メリット

  • Qtを使用しているので高速で処理を行える
  • モジュールが豊富でデザイン面での利点が多い

デメリット

  • 商用利用には向かない
  • 日本語の資料が少ない

wxPython(Phoenix)

wxPythonはC++で記述された、wxWidgetsをPythonで使用できるようにするための、GUIライブラリです

PyQtのように高速での動作が期待でき、かつ営利目的での利用も可能です

比較的、日本語の資料も多いのでTkinterに慣れたので他のも触ってみたいなって方にもおすすめです

Python3以降はPhoenixバージョンと呼ばれるものを使用します

メリット

  • 日本語の資料がある程度ある
  • 機能、デザインともに優秀
  • 商用利用が可能

デメリット

  • 特にない(と思う)

PySide

PyQtと同じ機能を有しているGUIライブラリ
PyQtと異なる点はPySideのライセンスがLGPLであるという点のみです

文法も同じであるため、ライセンスの違いで使用するか思案することになります

個人で使用するのであればPyQtにすれば良いと思います

ただ、企業などで利用する場合にはLGPLのPySideの方がいいのではないでしょうか?

メリット

  • PyQtよりは商用にも使える
  • Qtを使用しているので高速で処理を行える

デメリット

  • 日本語資料が圧倒的に少ない

結論

私としてはTkinterをおすすめします
というよりもTkinterでは実現できないことをしようとしているとかでない限りは、わざわざほかのGUIに飛び込む必要はないかと

一番無難ですし、プロジェクトグループ単位で使用するとかっとなると取っつきにくいものよりも理解しやすいもののほうがいいですからね

次点でwxPythonかな?こちらもTkinterになれたら触ってみるのもいいです

Kivyなんかも英語とかのドキュメントを読んだりできるのであれば、たくさん資料があるので
触ってみるのも楽しいと思います

PyQt(PySide)も世界的にみるとトレンド2位とかなので、今後さらに飛躍しそうで興味があります