Ustawianie wybranej właściwości Row w TreeView dynamicznie w Gtk3 (python)
Jest to ten sam problem, co wmój poprzedni pytanie, ale przeniosłem się do python3 / gtk3, aby móc użyć css do ustawiania podstawowych właściwości.
Z pliku Pythona:
self.w = Gtk.Window()
self.w.set_name("App")
Mogę użyć css:
#App GtkTreeView row:selected {
border-color: #000000;
border-top-width: 1px;
border-bottom-width: 1px;
color: #000;
}
I łatwo na stałe zmienić styl wyboru. Dla mnie oznacza to, że powinienem być w stanie dynamicznie uzyskać dostęp dorow
-obiekt i jego styl, w którym mogłem ustawićbg
dlaGtk.StateFlags.SELECTED
.
Próbowałem kilku dziwnych sposobów, np. (Gdziebg_color
jestGdk.Color
to działa dobrze np. zmiana stylu aLabel
na zewnątrzTreeView
).
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
Lub:
style = self.treeview.get_style().copy()
style.bg[Gtk.StateFlags.SELECTED] = bg_color
self.treeview.set_style(style)
(powoduje błąd:style.bg[Gtk.StateFlags.SELECTED] = bg_color IndexError: list assignment index out of range
)
etcetera ...
Więc jak mogę znaleźć sposób na dynamiczną zmianę efektu wyboru w zależności od normalnego koloru wiersza? Innymi słowy, w jaki sposób mogę znaleźć drogę do obiektu, który faktycznie posiada ustawienie stylu dla wyboru?