更改所选背景ttk treeview

2024-09-28 22:57:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Treeview小部件中更改选定的背景和前景色,我搜索了以前提出的问题,但没有找到明确的答案

尽管问题很清楚,但我的代码现在是这样的,根本不起作用,它甚至不会改变正常的背景(正如我发现的,我必须为选择和取消选择事件绑定标记,但标记不起作用,没有任何变化):

tree = ttk.Treeview(master)
tree.pack()
tree.tag_configure("hi", background="red")
tree.insert("", "end", text="this is a row", tags=("hi",))

任何帮助都将不胜感激


Tags: 答案代码标记mastertree部件configuretag
2条回答

我在Windows10上也有同样的问题。添加以下行并按预期标记_configure

    style = ttk.Style(self)
    aktualTheme = style.theme_use()
    style.theme_create("dummy", parent=aktualTheme)
    style.theme_use("dummy")

program demonstrating the workaround

感谢@stovfl comment,我找到了答案并决定与大家分享: (尽管我仍然不明白为什么背景风格不会影响我代码中的任何内容)

创建主题将影响整个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")

相关问题 更多 >