更改所选背景ttk树视图

问题描述 投票:1回答:1

我正在尝试更改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",))

任何帮助将不胜感激。

python tkinter ttk
1个回答
1
投票

由于@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")
© www.soinside.com 2019 - 2024. All rights reserved.