2017-07-18 104 views
1

即使我的Treeview具有選項takefocue=False,單元格中的文本仍以某種方式獲得焦點。具體來說,當我做tree.insert('', tk.END, text='Some Text', values=5)的文本列正在關注,這意味着圍繞Some Text有一條虛線。我能夠找到這resource,但我不知道我需要更改的佈局字符串。如何更改tkinter ttk的焦點樣式.Treeview cell

回答

1

按照Tcl/Tk維基,以下5種風格可以用來定製ttk.Treeview()部件:

"Treeview" 
"Treeview.Heading" 
"Treeview.Row" 
"Treeview.Cell" 
"Treeview.Item" 

使用.layout(),可以檢索各具風格的佈局規格:

style = ttk.Style() 
style.layout("Treeview.Item") 

事實證明,"Treeview.Item"樣式有一個"Treeitem.focus"佈局標記。如果您comment it out覆蓋佈局時,焦點繪圖行爲(和虛線)將消失:

style = ttk.Style() 

style.layout("Treeview.Item", 
[('Treeitem.padding', {'sticky': 'nswe', 'children': 
    [('Treeitem.indicator', {'side': 'left', 'sticky': ''}), 
    ('Treeitem.image', {'side': 'left', 'sticky': ''}), 
    #('Treeitem.focus', {'side': 'left', 'sticky': '', 'children': [ 
     ('Treeitem.text', {'side': 'left', 'sticky': ''}), 
    #]}) 
    ], 
})] 
) 

enter image description here

+1

哇,這正是我一直在尋找。非常感謝! – tristan957