我正在尝试更改Treeview小部件中行的选定背景和前景色,我搜索了之前曾问过的问题,但没有找到明确的答案。
尽管问题已经很清楚了,但是我的代码现在是这样的,并且根本不起作用,它甚至都不会改变正常的背景(如我所发现的,我必须为select和deselect事件绑定标签,但是标签无法正常工作,没有任何变化):
tree = ttk.Treeview(master)
tree.pack()
tree.tag_configure("hi", background="red")
tree.insert("", "end", text="this is a row", tags=("hi",))
任何帮助将不胜感激。
由于@stovfl的评论,我找到了答案,并决定分享它:(尽管仍然不知道为什么背景样式不会影响我的代码中的任何内容)
创建主题将影响整个ttk小部件,这不是我想要的,因此我从默认主题继承了该主题,并使用以下代码找到了默认主题:
print(ttk.Style().theme_use())
在Windows 10上对我来说是'vista',因此这是更改所选行的背景色的代码:
style = ttk.Style(master)
style.theme_create("my", "vista",
settings={
'Treeview': {
'map': {
'background': [('selected', '#ffdddd'), ("!selected", "white")],
'foreground': [('selected', 'black')],
"font": [("", ("", 13))]
} # end 'map'
} # end 'Treeview'
} # end settings
)
style.theme_use("my")