簡體   English   中英

更改選定的背景 ttk 樹視圖

[英]change selected background ttk treeview

我正在嘗試更改 Treeview 小部件中行的選定背景和前景色,我搜索了之前已經問過的問題,但沒有找到明確的答案。

盡管問題已經很清楚了,但我的代碼現在是這樣的,根本不起作用,它甚至不會改變正常的背景(正如我發現的,我必須為選擇和取消選擇事件綁定標簽,但標簽不是工作,沒有任何變化):

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")

我在 Windows 10 上遇到了同樣的問題。添加以下行,tag_configure 按預期工作

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

演示解決方法的程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM