Как применить градиентный фон к GtkWidget в GTK3?
Можно ли использовать градиент в качестве фона для универсального GtkWidget?
1 ответ
Решение
Что вы можете!
Gtk3 позволяет создавать темы с использованием CSS. Вот быстрый пример, который я собрал в Python:
#!/usr/bin/python3
from gi.repository import Gtk, Gdk
button = Gtk.Button("Click Me")
grid = Gtk.Grid()
grid.add(button)
window = Gtk.Window()
window.set_size_request(200, 50)
window.add(grid)
css_provider = Gtk.CssProvider()
css = """
.button {
background-image: -gtk-gradient (linear,
left top,
left bottom,
from (#d0e4f7),
color-stop (0.5, darker (#d0e4f7)),
to (#fdffff));
}
"""
css_provider.load_from_data(css.encode('UTF-8'))
screen = Gdk.Screen.get_default()
style_context = window.get_style_context()
style_context.add_provider_for_screen(screen, css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
window.connect('delete-event', Gtk.main_quit)
window.show_all()
Gtk.main()
У Карлоса Гарначо есть отличная статья в журнале GNOME, в которой разбираются особенности.