Это та же проблема, что и в моем предыдущем вопросе, но я перешел на python3 /gtk3, чтобы иметь возможность использовать CSS для установки основных свойств.
Из файла питона:
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
и его стилю, где я мог бы установить bg
для Gtk.StateFlags.SELECTED
.
Я пробовал кучу странных способов, например (где 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
Or:
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
)
и так далее...
Итак, пожалуйста, как мне найти способ динамически изменять эффект выделения в зависимости от нормального цвета строки? Или, другими словами, как мне найти путь к объекту, который на самом деле содержит настройку стиля для выделения?