【Python】GUIライブラリ13個を比較【初心者へのオススメあり】


豊富なライブラリがあり、AI自動化などで人気のあるPython。

 

プログラムを他の人に使ってもらったり、効率的に動かすために、GUIをつけたい場合があると思います。

 

piyo
GUIライブラリはどれを使えばよいのかなぁ?
管理人
たくさんありすぎて迷いますよね。
今回はライブラリ選びの助けとなるように、それぞれの特徴をまとめました。

 

是非、GUI選びの指針としてご活用ください

 

【本記事の構成】

  1. GUIとは
    GUIについてざっくり説明します。知っている人は飛ばしてください。
  2. PythonのGUIライブラリ13個を比較
    Pythonの13個のライブラリについて、その特徴やライセンス、参考URLなどをまとめました。
  3. 初心者へのオススメ
    Pythonやプログラミングの初心者にも扱いやすいような、おすすめのライブラリのご紹介です。
  4. GUIのサンプル画面と使い方
    いくつかのライブラリについて、実際に動かしてみたので、サンプル画面などを紹介しています。

 

それでは、どうぞ。

 


GUIとは

まずは、GUIについて簡単に説明します。

GUIとCUI

GUI(Graphical User Interface)は、主にマウスなどでグラフィカルに操作するユーザーインタフェースのことです。

Windowsデスクトップやブラウザ、ゲームなど、一般的に使われているソフトウェアはGUIが多いですね。

マウスでクリックしたり、スマホやタブレットなら画面にタッチをすることでソフトウェアを動かします。

 

CUI(Character User Interface)は、主にキーボードで文字(コマンド)を入力して操作するユーザーインタフェースです。

コマンドプロンプトやサーバー用のLinux OSのように、専門のエンジニアが使うことが多いです。

私たちはコマンドを打ち込み、コンピュータはコマンドに応じて処理します。

 

GUIのメリット

GUIのメリットは、ユーザが直感的に操作できることが挙げられます。

CUIのように専門のコマンドを覚える必要が無く、より簡単にソフトウェアを使ってもらえます。

 

CUIと比較し、画面の立ち上げなどの処理が必要なため、CUIと比較して重いことがデメリットとされてきましたが、

今はコンピューターの性能が上がっているためほとんど気にならないと思います。

 

管理人
一般の人をユーザーに想定した場合、GUIがよき

 

PythonのGUIライブラリ13個を比較

ソフトウェアを作る際には、プログラムを1から書くことはほとんどなく、
ライブラリ(他の方が作ったプログラム)を活用してプログラミングをします。

 

特にpythonは、ライブラリがとても沢山あります

 

GUIだけでも、ライブラリが複数あり、今回はその13個を一覧にまとめました。

pythonのGUIライブラリ13個を比較

ライブラリ 特徴 ライセンス 参考URL
ドキュメント・GitHub・実装例など
Tkinter pythonの標準ライブラリのため追加のインストール不要

Tcl/Tk のPythonバインディング

参考書籍や多くの参考Webサイトがあり、勉強しやすい

Python標準 ドキュメント

実装例

Kivy KV言語で直感的にレイアウトが作れる

モダンな見た目

MITライセンスのため使いやすい

MITライセンス ドキュメント

GitHub

実装例

PyQt Qt(キュート)のPythonバインディング

豊富なウィジェット等、機能が充実してる

非商用ではライセンスが厳しい

GPL(PyQt5)

商用もあり(PyQt5)

GitHub

実装例

PySide Qt(キュート)のPythonバインディング

PyQtと比較してライセンスが使いやすい

LGPL GitHub
wxPython wxWidgetsのPythonバインディング wxWindows License 公式HP(英語)

GitHub

実装例

turtle 図を描くことに特化 Python標準 ドキュメント
PyGUI 簡単だが機能少なめ

MITライセンスのため使いやすい

MITライセンス GitHub
PyOpenGL python用OpenGL OpenGL-ctypes License GitHub
PySimpleGUI 簡単にGUIが作成可能 LGPL ドキュメント(英語)

GitHub

実装例

PyGTK GTKのPythonバインディング LGPL GitHub
Flexx Webアプリケーション作成可能 BSD 2-Clause ドキュメント(英語)

GitHub

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画面のご紹介です!
見た目も重要ですよね!

 

GUIのサンプル画面と使い方

最後に、私が実装してみたpythonライブラリについて、「Hello World」などのサンプル画面と、使い方の記事をまとめました。

ご参考いただければと思います。

Tkinter

サンプル画面

参考記事

【Python】GUIを試してみた【tkinter編】※初心者向け

【Python】tkinterのWidgetの配置方法

 

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

今後いろいろ試してみたいと思います。

 

おすすめの本

初級者⇒中級者へのステップアップに、、、

プログラマー必読書はこちらでご紹介中です。

管理人
最後までご覧いただきありがとうございました!