我创建了一个pygtk TreeView,并想在每一行之间添加不同的颜色。我去了here,它说存在一个完全相同的TreeView Style属性。该属性被称为'odd-row-color'和'even-row-color'。所以转到我的代码并尝试使用set_property()来应用它。但是我收到了一条错误消息
self.customer_view.set_property('even-row-color', gtk.gdk.Color(211, 211, 211))
TypeError: object of type `GtkTreeView' does not have property `even-row-color'
如何实现这一目标。该财产在哪里处理?
答案 0 :(得分:2)
您可以使用css(GTK3)更改颜色,例如:
style_provider = Gtk.CssProvider()
css = '''
GtkTreeView row:nth-child(even) { background-color: shade(@base_color, 0.9); }
GtkTreeView row:nth-child(odd) { background-color: shade(@base_color, 1.0); }
'''
style_provider.load_from_data(css.encode('utf8'))
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
确保告诉GTK您想要绘制替代颜色:
treeview.set_rules_hint(True)