我的ttk树视图的选定行显示为深蓝色背景,文字为白色。
如果我使用标记设置行的颜色,例如:
self.tree.item(item, tags=('oddrow'))
并将标记配置为颜色,例如:
self.tree.tag_configure('oddrow', background='lightgrey')
并选择奇数,当文本从黑色变为白色时,背景颜色不会改变(它保持浅灰色)。如何将所选行背景变为深蓝色,无论该行是否标有颜色?
未标记的行显示为白色黑色,或者在深蓝色时选择为白色。
我试过
ttk.Style().configure('Treeview', selectbackground='blue')
但是没有做任何事情。
编辑:我想当我选择一个项目时我可以将其重新标记为不是奇怪的,然后在未选中的情况下返回,但这是相当不优雅的。
答案 0 :(得分:2)
从树木的TkDocs tutorial开始,您似乎可以:
然后,从树视图中捕获虚拟事件:
以下是我使用的文档中的具体段落:
The treeview will generate virtual events "<TreeviewSelect>", "<TreeviewOpen>"
and "<TreeviewClose>" which allow you to monitor changes to the widget made
by the user. You can use the "selection" method to determine the current
selection (the selection can also be changed from your program).
以及教程中的一些代码:
tree.tag_configure('ttk', background='yellow')
tree.tag_bind('ttk', '<1>', itemClicked); # the item clicked can be found via tree.focus()
注意:我不确定这是否有效。我将不得不挖掘代码来看看我做了什么。
答案 1 :(得分:0)
如果有人在寻找答案以更改tkinter树视图的选定颜色,则可以检查以下代码。
您已将状态更改为“已选择”,而不是“活动”。
style = ttk.Style()
style.configure("Treeview",
background="#E1E1E1",
foreground="#000000",
rowheight=25,
fieldbackground="#E1E1E1")
style.map('Treeview', background=[('selected', '#BFBFBF')])