我正在嘗試更改樹視圖的交替背景顏色。我知道這通常應該留給主題,但我想重寫以測試gtk樣式功能。根據樹視圖文檔here,我瞭解到TreeView有幾種只讀的樣式選項,包括「偶行顏色」,「奇數行顏色」和「允許規則」(根據文檔,允許繪製偶數和奇數行顏色)。而且我知道爲了覆蓋這些只讀設置,我必須在gtkrc樣式的文件或字符串中更改樣式。如何更改pygtk中gtk.TreeView的交替背景行顏色?
所以我對一個TreeView字符串看起來像:
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
裏面全是默認設置。通常我會認爲它根本不解析字符串並設置適當的值,但在這種情況下,背景顏色確實將更改爲我指定的顏色(僅將每行背景塗成一種顏色)。
我在做什麼錯?