我已经反复研究了几天,但是似乎无法解决可能出现的问题。
本质上,我正在尝试使用CSS样式声明在Gtk3中设置一些Gtk窗口小部件的样式,没有什么复杂的,只是尝试通过其ID /名称来定位特定元素。Gtk.CssProvider()的Gtk文档说
#widgetname { background-color: #333333; }
应该可以将其名称设置为“ widgetname”的窗口小部件用作有效的选择器,但我似乎无法使其正常工作。我本来以为是CSS没有加载,但是我可以像这样定位顶级窗口小部件:
GtkWindow { background-color: #333; }
它将样式应用于窗口,我可以看到背景颜色已更改。我已经尝试使用名称作为几个不同类型的小部件(GtkEventBox,GtkTextView,GtkStatusBar,GtkBox)的ID,而基于ID的选择器似乎不起作用。
这是我如何加载CSS的简短片段:
css = Gtk.CssProvider()
# css.load_from_file(file)
css.load_from_data('''
GtkWindow {
background-color: #333;
}
GtkEventBox {
background-color: #333;
}
#statusbarwrap, #textview_event_wrap, #box1 {
background-color: #333;
}
''')
style_context = self.get_style_context()
style_context.add_provider(
css,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
这是GtkCssProvider的文档https://developer.gnome.org/gtk3/3.7/GtkCssProvider.html
该页面上的示例24(只需向下滚动一两个页面)就表明#ID选择器有效,并且我正在Glade中设置小部件的名称。
任何帮助将不胜感激。
慕的地10843
相关分类