How can I set a style for treeview
widgets so that alternate rows have different background colors, for example, rows 1,3,5 have white backgrounds and rows 2,4,6 have light blue-grey backgrounds?
I'd also like to set gridlines
.
I had this same issue a few months ago.
From the 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.
Basically, you apply one tag to all of the odd-numbered rows, a different tag to each of the even-numbered rows, and then configure the tags.
When you create the items inside the treeview, add tags to them:
tree.insert('', 'end', text = 'your text', tags = ('oddrow',))
This code creates an element in tree
, and the tags
argument assigns the tag 'oddrow' to the element.
Once you've created all your elements with 'oddrow' and 'evenrow' tags, you can color the tags:
tree.tag_configure('oddrow', background='orange')
tree.tag_configure('evenrow', background='purple')
I realise this is an old question but just for the record configuring the tags just after creating the tree (i.e. when no items have yet been added to it) also works. As items get inserted later on they will be given the background colour appropriate to their 'oddrow' or 'evenrow' tag.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With