Python Forum

Full Version: Change Treeview column color?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
In tkinter Treeview, use tags just could be change something by row, can I change something by column?
from tkinter import Tk, ttk

root_ = Tk()

tree_1 = ttk.Treeview(root_, height = 15, columns = ('c1', 'c2', 'c3', 'c4'), selectmode = 'browse')
tree_1.column('c1', width = 75)
tree_1.column('c2', width = 75)
tree_1.column('c3', width = 75)
tree_1.column('c4', width = 75)
tree_1.heading('c1', text = 'column 1', anchor = 'w')
tree_1.heading('c2', text = 'column 2', anchor = 'w')
tree_1.heading('c3', text = 'column 3', anchor = 'w')
tree_1.heading('c4', text = 'column 4', anchor = 'w')
tree_1.grid(row = 0, column = 0)

tree_1.insert('', 'end', text = '', values = ('v11', 'v12', 'v13', 'v14'), tags = ['t1'])
tree_1.insert('', 'end', text = '', values = ('v21', 'v22', 'v23', 'v24'), tags = ['t2'])
tree_1.insert('', 'end', text = '', values = ('v31', 'v32', 'v33', 'v34'), tags = ['t1'])
tree_1.insert('', 'end', text = '', values = ('v41', 'v42', 'v43', 'v44'), tags = ['t2'])
tree_1.insert('', 'end', text = '', values = ('v51', 'v52', 'v53', 'v54'), tags = ['t1'])

tree_1.tag_configure('t1', background = 'gray')
tree_1.tag_configure('t2', background = 'green')

root_.mainloop()
[attachment=1647]
As far as I know, tags can only be applied to a complete row, not individual columns.
Have some other ways to change whole column style simply?
It probably can be done, but I expect you have to get clever.

I'll search for an example, but may not find one. If I do, I'll post it's URL.