Как изменить чередующийся цвет фона строки gtk.TreeView в pygtk?

Я пытаюсь изменить цвет фона в древовидной структуре. Я знаю, что обычно это следует оставлять на усмотрение темы, но я бы хотел переопределить, чтобы проверить функциональность стиля 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

Все настройки по умолчанию. Обычно я думаю, что он просто не анализирует строку и не устанавливает соответствующие значения, но в этом случае цвет фона действительно изменяется на указанный мной цвет (только он окрашивает фон каждой строки в один цвет).

Что я делаю не так?

5
задан gpoo 23 January 2013 в 04:21
поделиться