【发布时间】:2020-05-31 15:19:44
【问题描述】:
我正在尝试在 Fedora 32 中使用来自 gi.repository 的 Gtk3 在 python 3 中设置样式,但它什么也没做。
我曾经在 Gtk2 和 python2 中使用
settings = gtk.settings_get_for_screen(gdk.screen_get_default())
gtk.rc_parse_string(...)
gtk.rc_reset_styles(settings)
这很好用。
现在,在 Python 3 中使用来自 gi.repository 的 Gtk3 我尝试了这个,只是为了使背景变红。
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk as gtk
from gi.repository import Gdk as gdk
....
class Ave:
...
def __init__(self):
css_provider = gtk.CssProvider()
css_provider.load_from_data(b'GtkWindow { background-color: #ff0000; }')
screen = gdk.Screen.get_default()
gtk.StyleContext.add_provider_for_screen(screen, css_provider, gtk.STYLE_PROVIDER_PRIORITY_USER)
...
Ave()
gtk.main()
我也尝试使用css_provider.load_from_path('./ave_style.css'),但没有成功(如果ave_style.css 有错误,程序甚至会抱怨,所以它已加载。我什至尝试使用gtk.STYLE_PROVIDER_PRIORITY_APPLICATION。
然而,什么都没有发生。该程序完全忽略了CSS 样式。
【问题讨论】:
标签: python css python-3.x gtk3