PythonでGUIアプリをつくる!おすすめのライブラリとは


Pythonといえば、機械学習。そんな風に考えていらっしゃる方も多いのではないでしょうか。
しかし、Pythonにはさまざまなライブラリが存在しているので、実は機械学習やディープラーニングといった分野だけでなくWebアプリなども作成することが可能です。
FacebookやDrop box、Instagramといった、大規模なウェブサービスもPythonで開発されていると聞けば納得でしょう。

しかもPythonを使えば、なんとデスクトップ上で動くGUIアプリケーションですら開発することも可能なのです。
今回は、PythonでGUIアプリを作るためのおすすめのライブラリの紹介と、実際にアプリを作る際のポイントをご紹介します。

▽関連記事はこちら

ますます重要度をPython〜その実情と将来性に迫る

GUIアプリとは?

「GUI」とはGraphical User Interfaceの略で、ユーザーが見やすいよう、ウィンドウ上で絵やボタンなどを表示して選択や操作ができるインタフェースのことです。GUIアプリとはそのままGUIを使ってユーザーが操作できるアプリで、一般ユーザー向けのアプリはほぼ全てがGUIアプリです。

OSのデスクトップ上で動くGUIアプリを作成するには、コンパイラ型言語が必用と思われがちですが、スクリプト言語のPythonでも、ライブラリを使えば、簡単なユーティリティアプリぐらいは簡単に作成することが可能です。

GUIアプリ作成といえば、有名どころではJavaScriptで使用できるHTA、Excelで使用できるVBA、サーバーサイドJavaScriptのNode.jsではNW.jsなどを使ってGUIアプリを作成することができます。このようにPythonでもGUIアプリを作るために便利なライブラリが用意されています。
どんなライブラリがあるかを以下で紹介します。

tkInter

tkInterはPythonの標準ライブラリに採用されているGUIライブラリで、Tcl/Tk(ティクル・ティーケー)のGUIライブラリのTkをPythonで利用できるようにした物です。クロスプラットフォームでGUIアプリを作成できる点は他のライブラリと同様です。

tkInterは、Pythonの標準ライブラリという強みもあるものの、tkInterで作ったGUIアプリの作者が少ないことがデメリットです。

▽もっと「Tkinter」について知る

PythonのGUIライブラリ「Tkinter」の紹介

PyQt

PyQtはRiverbank Computing社によって開発されており、GPLライセンスと商用ライセンスで提供されています。商用のプログラムを作らない限りは、フリーライセンスで利用可能です。

商用ソフトでQtを利用するには、Nokiaが公開しているPySideがLPGLライセンスで提供されているのでフリーで利用することが可能ですが、PyQtと比べると利用者は少ないようです。

PyQtもクロスプラットフォーム対応で、440のクラスと6000以上の関数とメソッドを持っているのが特徴です。GUIのパーツの表示をQt側で受け持つことによってネイティブアプリケーションに似たUIを構築できる点が支持されていて、実際PyQtを使ったGUIアプリは数多く存在します。

wxPython

wxPythonは一番メジャーと言っても良いクロスプラットフォームのGUIライブラリです。
UI表示にはOSのAPIを使用しているため、見た目もネイティブアプリケーションの様に作ることが可能です。

現在、Python標準ライブラリとしてTkInterが採用されていますが、それはTkInterが先に開発されたからで、本当に汎用的に利用できるGUIライブラリはwxPythonであるとPythonの生みの親もコメントしているほどです。

Pythonで作られていることで有名なDropboxですが、GUIライブラリにはwxPythonが使われているそうです。

▽もっと「wxPython」について知る

PythonのGUIライブラリ「wxPython」の紹介

実際に使ってみよう

このようにGUIライブラリを利用すればスクリプト言語でもわりと簡単にデスクトップ上で動くアプリを作成することが可能なのです。
そこで、tkInterを使って実際にGUIアプリを作る例を見てみましょう。このソースコードは、tkInterの公式ぺージで公開されているコードに解説を付け足したものです。
▽tkinter — Tcl/Tk の Python インタフェース
https://docs.python.org/ja/3/library/tkinter.html

# Tkinterのライブラリを取り込む

import tkinter as tk

 

# アプリの初期設定

class Application(tk.Frame):

def __init__(self, master=None):

super().__init__(master)

self.master = master

self.pack()

self.create_widgets()

 

# tk. Buttonでボタン作成

def create_widgets(self):

self.hi_there = tk.Button(self)

# ボタンの表示テキスト作成

self.hi_there[“text”] = “Hello World\n(click me)”

# ボタン押下時のコマンド設定

self.hi_there[“command”] = self.say_hi

# ボタンの配置指定

self.hi_there.pack(side=”top”)

 

# 閉じるQUITボタン作成

self.quit = tk.Button(self, text=”QUIT”, fg=”red”,

command=self.master.destroy)

self.quit.pack(side=”bottom”)

 

def say_hi(self):

print(“hi there, everyone!”)

 

# tk.Tkでウィンドウ作成

root = tk.Tk()

app = Application(master=root)

# アプリのウィンドウを実行して表示

app.mainloop()

このように、tkInterを使うと、tk.Buttonなどの簡単な指定によってボタンを作ることができます。このソースコードを例えば「test_tk.py」というファイル名で保存し、プログラムを実行すると、以下のようなウィンドウが出てきます。(見やすく拡大しています。)

そして「Hello World(click me)」をクリックすると、実行したプロンプト上に「hi there, everyone!」というメッセージが表示されます。
これは簡単なボタン二つのプログラムですが、この他にもtk.Labelのコマンドではラベル、tk.Entryではテキストボックスが作れ、それぞれの表示名や動作を引数で与えることができるなどGUIの部品に関する操作がやりやすくなっています。

GUIアプリをネイティブアプリとして使うには

さてこのようにPythonでGUIアプリを作成しても、使う際には少し面倒なことがあります。Pythonのプログラムは「.py」の拡張子のファイルであり、そのまま単体では実行ができません。
Pythonはスクリプト型言語のためコンパイルなどの処理がありません。Pythonプログラムを実行するためには、その実行したい環境の上にPythonをインストールしてコマンドプロンプト上からPythonのコマンドを入力しなければならないのです。

こうしたPythonのアプリに対し、普段パソコン上で使っているようなデスクトップアプリはネイティブアプリと呼ばれます。ネイティブアプリとは、アプリを実行する際にPythonなどの他プログラム上で実行されるのではなく、そのアプリ自体があれば、ダブルクリックするなどの操作で実行できる形式のアプリのことです。主にWindowsでは「.exe」の拡張子を持つファイルとなります。
Pythonで作成したアプリをネイティブアプリのように実行ファイル形式にするためには一手間かける必要があります。

Pythonで組んだアプリを.exeファイルに変換したい場合、実行ファイル形式のパッケージを作る専用のツールがあります。実行ファイル形式にすればPythonがインストールされていない環境でもそのアプリだけで実行出来るようになります。
ではそのツールとはどんなものか、見ていきましょう。

Pyinstaller

Python専用のexeファイルを作れるツールです。インストールは公式サイトまたはPython公式パッケージツールのpipからも行えます。
Pyinstallerのコマンドを1行実行するだけで簡単に実行ファイルが作れます。2019年7月現在、最新バージョンであるPython3.7まで対応しています。

実行ファイルも作ってみよう

上の章で保存したtest_tk.pyを実行ファイルに変換する例を見てみましょう。
ここではpipを使ってインストールを行います。Pyinstallerは、通常Pythonをインストールすれば特別にファイルをダウンロードしたりしなくてもpipを使用してすぐにインストールできます。Pythonがインストールされている環境上で、コマンドプロンプトで以下のコマンドを実行します。

> pip install pyinstaller

これでPyinstallerがインストールされ、使えるようになります。
その後、pyinstallerコマンドで実行ファイルに変換したい元のファイルを指定し、exeファイルを作ります。

> pyinstaller test_tk.py

このコマンドを実行すると、元ファイルと同じ場所にdistフォルダやbuildフォルダなどいくつかのファイル・フォルダが作られます。そしてdistフォルダ内のtest_tkフォルダ内に実行ファイルが作られます。

このように、ファイルの種類が「アプリケーション」となっています。
ここまでくれば完成で、このアプリケーションファイルは単体で実行できます。
このアプリケーションファイルをダブルクリックすれば、Pythonを起動してtest_tk.pyを実行したときと同じようにGUIのウィンドウが現れます。
同時にプロンプト画面も出現し、ボタンを押した際には「hi there, everyone!」メッセージが表示されます。プロンプトはQUITボタンを押せば一緒に閉じます。

まとめ

PythonでGUIアプリを作るのに便利なライブラリやツールをご紹介しましたが、Pythonは世界中で多く使われている言語であるため他にもさまざまなツールがたくさんあります。チュートリアルのページも多く存在するので、GUIアプリを作る際はぜひ利用してみましょう。

▽まだまだある!Python GUIライブラリ人気記事

Python、GUIライブラリの紹介

追記:2019/7/12アップデート

▼キャパの公式Twitter・FacebookではITに関する情報を毎日更新しています!
・Twitter

・Facebook
キャパFacebookページへ

CONTACT

株式会社キャパでは、GeneXusの開発について
ご相談を承っています。

営業時間:月~金 9:30~18:00 
土日・祝 定休日
FAXでのお問い合わせは24時間受付中 
FAX:03-5297-2879


関連記事一覧

we love develop
アプリやシステムの開発を通じて、お客様のビジネスを成長させることが私たちのビジネスです。お気軽にお問い合わせください。
 お問い合せ

お電話でのお問い合わせはこちらから
TEL:03-5297-2871

メールマガジンの登録

キャパでは誰かに話したくなるようなIT小ネタを、週に一回メルマガで配信しています。
ぜひ購読してみませんか?
 購読する

ホワイトペーパーの入手

ITブログ月間20万PV達成!自社オウンドメディアの運用ノウハウを無料公開しています。
 ダウンロード

記事カテゴリ

月別投稿記事

PAGE TOP