Ubuntu 11.10 Python GTK+3

まったく気がつかない間に Ubuntu 11.10 が出ていた。
IT 系サイトも見ていたはずなんだけど…
一時期の盛り上がりは何だったんだ…

とにかく 11.10 は GTK+3 が使えるようになったかチェックだ。

日本語 Remix は今回も 32bit 版のみ、ガッカリだよ。
インストール方法は CD を入れればバカでも解るので解説はいらない。

Fedora 15 同様にアップデートではパスワード要求されなくなったみたい。
他、使用感とかは他サイトにまかせるとして。
以下は pygi 等のプログラミング関連。

やはり Nautilus や Gedit の GNOME アプリは GTK+3 になっている。
まず Python で GTK+3 や Clutter が利用できるかチェックする。

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Clutter

gi で Gtk3 を指定しても例外にならない、よし GTK+3 は使える。
というかデフォルトが 3.0 側になるので GTK+2 の場合は 2.0 を指定。
Clutter は使えない、3D 機能は compiz なのだから当然かもね。

まてよ?
GTK+3 化したのにテーマが変わっていないということは…

for PyGtk (GTK+2)

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import gtk

class Win(gtk.Window):
    def __init__(self):
        gtk.Window.__init__(self)
        self.set_title("Gtk2")
        button = gtk.CheckButton("GTK+2 GtkCheckButton")
        button.set_property("active", True)
        self.add(button)
        self.connect("delete-event", gtk.main_quit)
        self.show_all()
    
if __name__ == "__main__":
    Win()
    gtk.main()

for PyGi (Gtk+3)

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from gi.repository import Gtk

class Win(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        self.set_title("Gtk3")
        button = Gtk.CheckButton("GTK+3 GtkCheckButton")
        button.set_property("active", True)
        self.add(button)
        self.connect("delete-event", Gtk.main_quit)
        self.show_all()
    
if __name__ == "__main__":
    Win()
    Gtk.main()

やっぱり見た目は同じになるようだ。
これではいったいどのアプリケーションが GTK+3 化されたのか解り辛い。

しかも GTK+2 だとテーマエンジンが無いと WARNING が出るし。
アップグレードなら GTK+2 テーマエンジンは残ると思うけど。
つまり Firefox も GTK+2 なので WARNING が echo されると…

Fedora から半年遅れで GTK+3 を投入したのにコレだよ。
相変わらず Ubuntu はツメが甘いままリリースするようだ。

とにかく python から GTK+3 が使えるのは解った。
もう少し細かいことに気がついたら後日追記します。