這與my previous問題中的問題相同,但我轉移到python3/gtk3以便能夠使用css設置基本屬性。在Gtk3中動態設置Row的選定屬性(python)
從Python文件:
self.w = Gtk.Window()
self.w.set_name("App")
我可以使用CSS:
#App GtkTreeView row:selected {
border-color: #000000;
border-top-width: 1px;
border-bottom-width: 1px;
color: #000;
}
,輕鬆地永久地改變選擇的風格。對我來說,這意味着我應該能夠動態訪問row
對象及其樣式,我可以爲Gtk.StateFlags.SELECTED
設置bg
。
我已經嘗試了一堆怪異的方式,e.g(其中bg_color
是一個Gdk.Color
工作正常進行例如改變Label
的風格TreeView
外)。
style=self.treeview.get_style_context()
col = style.get_background_color(Gtk.StateFlags.SELECTED)
col.alpha = 1.0
col.blue = bg_color.blue
col.red = bg_color.red
col.green = bg_color.green
或者:
style = self.treeview.get_style().copy()
style.bg[Gtk.StateFlags.SELECTED] = bg_color
self.treeview.set_style(style)
(產生錯誤:style.bg[Gtk.StateFlags.SELECTED] = bg_color IndexError: list assignment index out of range
)
諸如此類......
所以,請我怎麼找到這取決於動態改變選擇效應的方法在行的正常顏色?或者換句話說,我如何找到實際上包含選擇樣式設置的對象?