2012年9月25日

Python でマルチプラットフォームなデスクトップGUIプログラムを作成する場合は Tkinter を使うことにした

概要

Python で マルチプラットフォームなデスクトップGUIアプリ作成する場合は、標準で組みこまれている GUI モジュール Tkinter を使うことに結局おちついたというメモ。

ドキュメント

以下の二つを見ればだいたい理解できる。

サンプル

簡単なサンプル

#!/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 が合致した、というただそれだけ。

blog comments powered by Disqus