で Gtk+ 等のバージョン振り分け方法を今頃知った。
Get GTK+ theme colors with python and GObject introspection – Stack Overflow
とにかく gi.repository は(我が fedora は 64bit)
/usr/lib64/girepository-1.0
というディレクトリにある *.typelib というファイル群である。
Ubuntu 11.04 デフォルトには Gtk-3.0.typelib は無い。
Gtk+3.0 自体が無いのだから当然だが、最新なのに古臭さを感じるよ。
pygobject – Python bindings GLib and GObject
この demos にあるサンプルは GtkDrawingArea の draw シグナルを使っているが…
Gtk+ 2 になる Ubuntu とかじゃ例外になるはずなんだがいいのかな。
import gi gi.require_version('Gtk', '2.0') from gi.repository import Gtk
とやれば Fedora 15 でも Gtk2 になる。
そんなことする人いないだろうけど Ubuntu 11.04 対応を Fedora 15 から確認なんかに使えるな。
Gtk2 を使うなら枯れた PyGtk のほうが楽だもの、サンプルコードはゴロゴロあるし。
import sys import gi try: gi.require_version("Gtk", "3.0") except: print "This Program is GTK+ 3.0 or later." sys.exit()
Gtk+ 3 専用の場合はこうするのが賢明かな。