Я пытаюсь изменить цвет фона в древовидной структуре. Я знаю, что обычно это следует оставлять на усмотрение темы, но я бы хотел переопределить, чтобы проверить функциональность стиля gtk. Согласно документации treeview здесь , я узнал, что 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
Все настройки по умолчанию. Обычно я думаю, что он просто не анализирует строку и не устанавливает соответствующие значения, но в этом случае цвет фона действительно изменяется на указанный мной цвет (только он окрашивает фон каждой строки в один цвет).
Что я делаю не так?