С новым 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?
версия питона: 2.7.2+
ГТК версия: 3.0
РЕДАКТИРОВАТЬ: пример представляет собой модифицированную версию этот