PyQt5 で GUI アプリケーション

Python には昔から Tk という GUI ライブラリが付属しているのですが、あまりかっこよくありません…

勿論、目的が達成出来れば問題ないのですが、やっぱり見た目がかっこいい方が開発していて楽しいかも?ということで、 MacOSX 上に PyQt5 の環境を構築してみることにしました。

インストール作業

Qt のインストール

http://qt-project.org

PyQt5 は Qt をラッピングしたモジュールなので、まず Qt を用意しなければいけません。

Qt には Online Installer が用意してありますので、それを使用してインストールします。

そのうち指定しなくても良くなるかと思いますが、MacOSX 10.9 上で build をしている場合は、環境変数にあらかじめ 10.8 という値を設定しておきます。

export MACOSX_DEPLOYMENT_TARGET=10.8

Python 3.4 のインストール

https://www.python.org

標準の MacOSX には Python3 がありませんので、 Python3[1. この記事を書いている時点では 3.4 が最新バージョンでした。]をインストールする必要があります。

…の前に Marvericks 環境に必要なツールをインストールしておきます。

xcode-select --install

インストールが終わったら、

./configure
または
./configure --prefix=INSTALL_PATH
make
make install

インストール先を好きな場所にしたい場合は、 ./configure オプションの –prefix を使用する事でインストール先を任意の場所に変更することが出来ます。

sip のインストール

sip は C/C++ 用のモジュール(dll や so)を Python から呼び出せるようにするためのモジュールです。 PyQt5 は Qt を呼び出すために sip を使用するので、事前にインストールしておく必要があります。

python3 configure.py
make
make install

PyQt5 のインストール

ここまで完了したらやっと PyQt5 のインストールを始める事が出来ます。

PyQt5 の build には Qt 用の make ツールである qmake と、事前にインストールした sip が必要となります。

インストール場所を以下の様に指定します。

python3 configure.py --qmake <QMAKE PATH> --sip <SIP PATH>
make
make install

PyQt5 のビルドにはかなりの時間がかかります。

ビルド後の確認方法は、 PyQt5 に添付している example を実行することで試せます。

python3 example/qtdemo/qtdemo.py

とすることで、各種デモを呼び出せるメニューアプリケーションが起動出来ます。

メニューアプリケーション自体が PyQt5 製になっています。

pyqt_demo こんな感じ。

おまけ

cx_freeze を導入しておくと、アプリケーションの配布に便利です。

http://cx-freeze.sourceforge.net