我正在尝试更改树视图的交替背景颜色。我知道这通常应该由主题决定,但我想重写以测试 gtk 样式功能。根据树形视图文档here,我了解到 TreeView 有几个只读的样式选项,包括“偶数行颜色”、“奇数行颜色”和“允许规则”(根据文档,允许绘制偶数和奇数行颜色)。我知道,为了覆盖这些只读设置,我必须更改 gtkrc 样式文件或字符串中的样式。
所以我的树视图字符串看起来像:
gtk.rc_parse_string( """
style "custom-treestyle"{
GtkTreeView::odd-row-color = "#00CBFF"
GtkTreeView::even-row-color = "#90EE90"
GtkTreeView::allow-rules = 1
}
widget "*custom_treeview*" style "custom-treestyle"
""")
treeview.set_name("custom_treeview" )
解析不会出现错误,结果是偶数行颜色同时应用于偶数行和奇数行。
编辑:我从更多测试中发现我的解析字符串必须被其他一些样式设置覆盖。
print treeview.style_get_property( 'allow-rules' )
print treeview.style_get_property( 'odd-row-color')
print treeview.style_get_property( 'even-row-color')
给出结果:
True
None
None
这些都是默认设置。通常我会认为它只是不解析字符串并设置适当的值,但在这种情况下背景颜色does更改为我指定的颜色(仅将每一行的背景绘制为一种颜色)。
我究竟做错了什么?
我终于解决了这种造型方法的问题。
“allow-rules”样式属性并不是告诉树视图以交替颜色对行进行着色的唯一属性。根据文档,树视图有另一个属性,该属性提示引擎应该以交替颜色绘制行。 “rules-hint”属性默认为 False,当 True 成功地以交替的奇数/偶数行颜色为我的 TreeView 着色时!
因此,在代码中,将此行添加到问题中的代码中:
treeview.set_rules_hint( True )
就是这样,一个具有交替彩色行的 TreeView!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)