Ttk treeview: альтернативные цвета строк

Как установить стиль для виджетов treeview, чтобы чередующиеся строки имели разные цвета фона, например, строки 1,3,5 имели белый фон и строки 2,4,6 имели светло-сине-серый фон?

Я также хотел бы установить gridlines.

Ответ 1

У меня была эта же проблема несколько месяцев назад.

Из tk docs:

You can assign a list of tags to each item using the "tags" 
item configuration option (again, when creating the item or later on).

Tag configuration options can then be specified, which will then 
apply to all items having that tag.

В принципе, вы применяете один тег ко всем строкам нечетного номера, другому тегу для каждой строки четного номера, а затем настраиваете теги.


При создании элементов внутри древовидного изображения добавьте к ним теги:

tree.insert('', 'end', text = 'your text', tags = ('oddrow',))

Этот код создает элемент в tree, а аргумент tags присваивает элементу элемент 'oddrow'.

После того, как вы создали все свои элементы с тегами 'oddrow' и 'evenrow', вы можете покрасить теги:

tree.tag_configure('oddrow', background='orange')
tree.tag_configure('evenrow', background='purple')

Ответ 2

Я понимаю, что это старый вопрос, но только для записи, настраивающей теги сразу после создания дерева (т.е. когда никакие элементы еще не добавлены к нему) также работает. По мере того, как элементы будут вставлены позже, им будет присвоен цвет фона, соответствующий их тегу 'oddrow' или 'evenrow'.