【问题标题】:How to add different color to odd and even rows in a pygtk TreeView如何在 pygtk TreeView 中为奇数行和偶数行添加不同的颜色
【发布时间】:2013-10-18 12:31:17
【问题描述】:

我创建了一个 pygtk TreeView 并想在每行之间添加不同的颜色。我去了here,它说存在一个完全相同的 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' 

如何做到这一点。该财产在哪里处理?

【问题讨论】:

    标签: styles pygtk gtktreeview


    【解决方案1】:

    您可以使用 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)
    

    【讨论】:

    • stackoverflow.com/questions/9036812/… 我真的用过这个:)
    • 我试图说服你使用 GTK3... pygtk 不再维护,你不应该将它用于新代码。
    • 1) 有没有非 CSS 解决方案? 2) 如何区分多个 TreeView?
    猜你喜欢
    • 1970-01-01
    • 2014-07-20
    • 2021-01-02
    • 2012-08-19
    • 2019-01-02
    • 1970-01-01
    • 2021-12-31
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多