【发布时间】:2013-05-20 09:47:28
【问题描述】:
我已经断断续续地摆弄了几天,但似乎无法解决可能出现的问题。
基本上,我正在尝试使用 CSS 样式声明在 Gtk3 中设置 Gtk 小部件的样式,这并不复杂,只是尝试通过其 id/name 来定位特定元素。 Gtk.CssProvider() 的 Gtk 文档说
#widgetname { background-color: #333333; }
应该作为名称设置为“widgetname”的小部件的有效选择器,但我似乎无法让它工作。我最初以为是 CSS 未加载,但我可以像这样定位顶级小部件:
GtkWindow { background-color: #333; }
它会将样式应用到窗口,我可以看到背景颜色发生了变化。我尝试使用该名称作为几种不同类型小部件(GtkEventBox、GtkTextView、GtkStatusBar、GtkBox)的 ID,但基于 ID 的选择器似乎不起作用。
这是我如何加载 css 的简短 sn-p:
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 中的小部件设置名称。
任何帮助将不胜感激。
【问题讨论】:
标签: python css gtk gtk3 pygobject