概要
Python で マルチプラットフォームなデスクトップGUIアプリ作成する場合は、標準で組みこまれている GUI モジュール Tkinter を使うことに結局おちついたというメモ。
ドキュメント
以下の二つを見ればだいたい理解できる。
- Python2.7 のドキュメント「24. Tkを用いたグラフィカルユーザインターフェイス — Python 2.7ja1 documentation」
- Mark Roseman氏のTkチュートリアル「TkDocs - Tk Tutorial」
サンプル
簡単なサンプル
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Tkinter
import ttk
root = Tkinter.Tk()
ttk.Button(root, text="Hello World").grid()
root.mainloop()
その他のGUIツールキットに関して
Python で マルチプラットフォームなGUIプログラムを作成するには他にもいろいろある。とりあえず Mac OS X上での開発における個人的な感想は以下。この感想は主眼が Mac 上での動作なので、Linux を主にするなら感想は当然違う。
- wxPython:いろいろ無茶をするとそれほど頑健ではないが、通常利用ならこまらない。
- GTK:Mac OS X用のバイナリが配布されていない模様なので、ソースからコンパイルすることになる。いまいちMac上で安定しない。
- Qt:開発主体がノキアからdigiaに移行して間もないので、現在様子見中。
- Titanium Desktop:求める機能が上手く実装できない事があった。結構APIに制限がある。今の所利用は保留。
まとめ
マルチプラットフォームで動作するデスクトップGUIを作成する機会は少ないのだが、今回どうしても必要になったので、再びいろいろためしていた。
やや癖はある物の Tk の安定性はかなり良い。
他のが悪いわけではなく、今回の要望に Tkinter が合致した、というただそれだけ。