お役立ち情報

PythonのGUIライブラリ比較!そもそもGUIとは何か

PythonのGUI?

PythonはWebシステムや機械学習に使用されることの多いプログラミング言語ですが、ユーザーに触れる部分はGUIがほとんどです。そのためPythonでサービスを作るにはGUIを作る必要があるのですが、すべて自分で実装する必要はありません。

ライブラリを使用すれば便利にGUIを実装できるため、特に使い勝手の良いライブラリを紹介します。しかし、そもそもGUIが何かがよくわからない、CUIとの違いがよくわからない、といった状況の方もいるかもしれません。

そこで、ライブラリの前にGUIについても解説します。

GUIとは

GUIとは、グラフィックユーザーインターフェースの略です。このように書くと大層なもののような感じがしますが、実際は普段使っているファイルをダブルクリックで開く機能や、コントロールパネルを開いて操作するような機能はすべてGUIです。

CUIとは

CUIはGUIの逆で、キャラクターユーザーインターフェースの略です。キャラクターとはアニメや漫画のキャラクターではなく、文字のことです。要するに、グラフィックで操作するのではなく、文字だけで操作するということです。

WindowsのコマンドプロンプトやMacのターミナルがその代表例で、これらのコマンドから実はすべての操作を行うことができます。昔はGUIはなかったので、すべてCUIで操作していました。

今の時代ほとんどの操作をGUIで行うためコマンドプロンプトやターミナルの存在を知らない人も多いくらいで、GUIの充実していないシステムは嫌煙されるだけでなくそもそも使えない人が多いでしょう。

GUI作成に便利なライブラリ

GUIの説明は上記の通りですが、次にそのGUIを作るのに便利なライブラリを紹介します。ライブラリとは、処理をひとまとめにしたもののことです。外部に用意されているライブラリを利用することで、自分ですべて記述しなくても処理を実行できます。

Kivy

KivyはOS問わず動作するGUIライブラリで、WindowsやMacはもちろんiOSやAndroidでも動作します。今はスマホやタブレットからサイトにアクセスする人も多く、過半数はスマホやタブレットからのアクセス、といったサイトも珍しくありません。

Kivyはクロスプラットフォームで特にゲームに強みのあるライブラリなので、スマホゲームで使用されていることが多いです。日本のスマホゲームは別のライブラリが使用されていることも多いのですが、海外のスマホゲームだとKivyをベースに作られているものはかなり多いです。

Tkinter

TkinterはPythonに標準搭載されているライブラリです。標準搭載されているので環境構築不要で楽ですが、機能面で不足を感じている開発者は多いでしょう。その結果、Kivyをはじめ外部のGUIライブラリが利用されています。

PyQt

PyQtはQtという歴史あるライブラリをPython向けに移植されたものです。国外にも国外にもPyQtを使用したアプリケーションは数多いです。

Flexx

Flexxはライブラリ自体がPythonで実装されているため、ソースコードを読めばPythonの勉強にもなります。ちなみに、別のライブラリはC++で書かれているものや、C++とPythonをミックスしたようなものが多いです。

PySide

PySideはPyQt同様Qtがベースとなっています。PyQtの方が利便性が高いと言われることが多いですが、PyQtは商用利用できないというデメリットがあります。商用利用する場合、どちらかを選択するのであればPySideになります。

PyGUI

PyGUIはUnix、Windows、Macといったパソコン用のOSを対象としているニュージーランド産のGUIライブラリです。使いやすさに定評があるので、初めてのGUIライブラリにおすすめです。凝ったGUIやスマホ用のGUIは難しいので、そういった実装を行う場合別のライブラリを使用した方が良いでしょう。

GUIライブラリの使い方

おすすめのGUIライブラリを紹介しましたが、現状シェアが大きいのはTkinterです。似たような実装はどのライブラリでも可能なため特別Tkinterを押しているわけではありませんが、ここではTkinterをベースにインストールから実際に使用するまでの流れを解説します。

インストールの確認

まずはTkinterのパッケージをインストールします。Pythonのパッケージをすでにインストールしていればすでに入っていますが、そうでない場合検索エンジンで検索し、公式ページからボタンクリックでインストールが可能です。

インストールの流れはフォームに従うだけなので特筆すべき個所はありませんが、インストールされているかどうか確認することができます。確認作業は必須ではありませんが、念のため見ておくと確実です。

Windowsの場合コマンドプロンプトから、Linuxの場合ターミナルから「python -m tkinter」のコマンドで確認すると、tkと書かれた小窓が出てきます。これが出てこれば、インストールされているということです。

ライブラリの使い方

GUI以外のライブラリの使用経験がある方は、流れとしてはほぼ同じです。以下のようにライブラリをインポートし、機能を引用します。

from tkinter import *
from tkinter import ttk

def sample():
    print('Hello, %s!' % t.get())

root = Tk()
root.title('use library')
frame1 = ttk.Frame(root)
label1 = ttk.Label(frame1, text='入力:')

t = StringVar()

entry1 = ttk.Entry(frame1, textvariable=t)
button1 = ttk.Button(frame1, text='OK', command= sample)

frame1.grid(row=0,column=0,sticky=(N,E,S,W))
label1.grid(row=1,column=1,sticky=E)
entry1.grid(row=1,column=2,sticky=W)
button1.grid(row=2,column=2,sticky=W)

for child in frame1.winfo_children():
    child.grid_configure(padx=5, pady=5)

root.mainloop()

このサンプルコードでは、文字を入力できる小窓を表示しています。ソースコードの詳細は現状気にする必要はないかと思いますが、ライブラリのインストールから使用までの流れが把握できたかと思います。

自分の端末にライブラリを入れておいて、各ソースコードでそれを呼び出し、使用する、という流れになります。GUI以外のライブラリもこのように使用するので、ライブラリの使用は難しくありません。

ぜひ積極的にライブラリを活用し、プログラミングを効率化していってください。ライブラリの詳細機能については検索ですぐに見つかるので、基本的には検索したコードをそのまま真似れば思い通りに実装できます。

キャリアカウンセリングのプロとして
あなたに合った案件をご案内します。

まずはお気軽にお問い合わせください!

イメージ