1

我创建了一个 pygtk TreeView 并希望在每行之间添加不同的颜色。我去了这里,它说存在一个完全相同的 TreeView Style 属性。该属性称为“奇行颜色”和“偶行颜色”。所以转到我的代码并尝试使用 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' 

怎么可能达到。该财产在哪里处理?

4

1 回答 1

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)
于 2013-10-19T14:33:15.497 回答