PythonでGUIアプリを作成するのにオススメのライブラリとは?現役エンジニアが解説【初心者向け】

初心者向けにPythonでGUIアプリを作成するのにオススメのライブラリについて現役エンジニアが解説しています。GUIの反対派CLIでWindowsのコマンドプロンプトのような画面のことです。Pythonでも他のツールを使えばデスクトップアプリケーションを作成することが出来ます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PythonでGUIアプリを作成するのにオススメのライブラリについて解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonでGUIアプリを作成するのにオススメのライブラリについて詳しく説明していくね!

大石ゆかり

お願いします!

 

GUIを使うメリットとは?

GUIはGraphical User Interfaceの略で、画面操作(ボタンのクリックやマウスによる移動など)で、プログラムを操作する方式です。

対義語はCLI(Command Line Interface)で、キーボードによるコマンド入力で、プログラムを操作する方式です。

文字に加え、アイコンなどの画像で操作対象をわかりやすくしたり、マウスで直感的に操作できたりするのがGUIの利点です。
コンピュータ操作に不慣れな人や、そのプログラムを初めて扱う人でも、GUIならばプログラムを操作できます(十分親切なインターフェースであることが条件です)。

 

GUIのフレームワークを選ぶ際のポイントは?

GUIプログラミングの際、ウィンドウ操作のAPIを直接操作するのはまれで、適当なフレームワーク(開発環境)を用いるのが一般的です。

選定では以下のような点に着目します。

ターゲットとするOS(Windows, Linux, Macなど)に対応しているか。複数OSに対応するフレームワークもあります。

使用するプログラミング言語に対応しているか。フレームワークによっては、使用できるプログラミング言語に制約があります。

機能は充足しているか。主要フレームワークでは、ウィンドウやボタンといった基本的な機能の不足はほぼありませんが、特殊な機能の利用を想定している場合には注意します。
外観(見た目)はどうか。フレームワークごとに外観の印象は大きく異なります。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

PythonにオススメのGUI

Tkinter

TkinterはPython標準のGUIフレームワークです。

標準モジュールのため、ドキュメントや事例も豊富です。
追加インストールも不要で、Python本体にあわせてバージョンアップされます。
PythonのGUIプログラミングを最初に試す場合、良い選択肢です。

 

Kivy

KivyはNUI(Natural User Interface)でのマルチタッチアプリ開発のためのライブラリです。

GPUによる高速化もサポートしています。
スマートフォンやタブレット向けのマルチタッチアプリをPythonで開発したい場合に、選択肢の筆頭になります。

 
 

PyQt

QtはC++で記述されたGUIフレームワークです。

PyQtはQtのPythonバインディングで、PythonでQtの各種機能を利用できます。
Qtは単なるGUIフレームワーク以上の機能を備えており、使いこなすには相応の熟練を要します。

 
 

wxPython

wxPythonはPythonのGUIモジュールです。

tkinterと比較するとウィジェットが豊富で、外観や操作感をカスタマイズしやすいです。
一方で、標準モジュールでなく、追加インストールが必要という点が欠点です。

 

実際にKivyでGUIアプリを作ってみる

Kivyのインストール

公式サイトの説明に沿ってKivyをインストールします。

 

動作確認

pip install kivy_examples
python share\kivy-examples\demo\showcase\main.py

 

以下のようなGUI画面が表示されれば、インストール成功です。

pythonのgui作成アプリケーションのkivyの作成画面

 

サンプルコード

Hello worldと表示するだけの簡単なアプリケーションです。
(注)2行目でKivyのバージョンを指定しています。本稿執筆時点の最新版のため、変わる可能性があります。

 

import kivy
kivy.require('1.10.1')

from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        return Label(text='Hello world')

if __name__ == '__main__':
    MyApp().run()

 

実行結果

以下のようなウィンドウが表示されました。

pythonによるguiアプリケーションの作成。kivyを使ったhello worldの画面

 

解説

冒頭で必要なモジュールをインポートしました。
Appクラスを継承したMyAppクラスを作成しました。
Appクラスを継承したクラスで、buildメソッドを実装します。内容は単純なラベルを返却するものです。
MyAppクラスのrunメソッドを呼び出すとウィンドウを描画します。

 

監修してくれたメンター

橋本紘希

システムインテグレータ企業勤務のシステムエンジニア。

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。