新しいgtkを使用すると、cssなどのファイルを使用してグラフィカルテーマを作成できます。
このcssファイル(名前付きmy-gtk-widgets.css
)を考えると:
.button {
border-radius: 0;
border-style: solid;
}
.button:hover {
transition: 3000ms linear;
border-radius: 50;
}
そして次のPythonコード:
from gi.repository import Gtk
from gi.repository import Gdk
def _destroy_cb(widget, data=None):
Gtk.main_quit()
window = Gtk.Window()
window.connect("destroy", _destroy_cb)
screen = Gdk.Screen.get_default()
css_provider = Gtk.CssProvider()
css_provider.load_from_path('my-gtk-widgets.css')
context = Gtk.StyleContext()
context.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
box = Gtk.VBox()
window.add(box)
button = Gtk.Button('go-next')
box.pack_start(button, False, False, 0)
window.show_all()
Gtk.main()
このコードを実行すると、ホバーしたときに境界線の半径を変更するボタンが表示されます。ただし、移行は瞬時に行われ、アニメーション化されません。
これの理由は何ですか?別のバージョンのgtk、python、...が必要ですか?または、このアニメーションはgtkテーマ(私の場合はUbuntuのデフォルト)に依存していますAmbience
か?または、cssファイルに何か問題がありますか?
Pythonバージョン:2.7.2+
gtkバージョン:3.0
編集:例はこれの修正版です