2015-09-05 74 views
2

我想爲我的Ttk Treeview中的選定項目有不同的背景,我有這個。從項目中刪除標籤Ttk Treeview

self.tree.bind("<<TreeviewSelect>>", self.TableItemClick) 

def TableItemClick(self, event): 
    self.tree.item(self.tree.selection(), tags="selected") 

但我怎樣才能從物品中刪除標籤?現在,所有這些都保留着這個標籤。 我需要從所有項目中刪除此標籤,並將其設置爲新的。 感謝

編輯 我存儲上一個項目到變量,然後給它未選中的標籤

def TableItemClick(self, event): 
    self.tree.item(self.selected, tags="unselected") 
    self.tree.item(self.tree.selection(), tags="selected") 
    self.selected = self.tree.selection() 

回答

2

創建一個窗口和一個TreeView

app = Tk() 
tree = ttk.Treeview(app) 
tree.pack() 

放一些項目到解決它樹狀圖

tree.insert('', 'end', 'toplevel', text='title') 
tree.insert('toplevel', 'end', text='some text', tags='tagred') 
item_id = tree.insert('toplevel', 'end', text='some text', tags='tagyellow') 

具有標籤'tagred'配置項具有紅色背景

具有標籤 'tagyellow'有黃色的背景

tree.tag_configure('tagyellow', background="yellow") 

使用item_id我們上面存儲從該項目中刪除所有標籤的ID

tree.tag_configure('tagred', background="red") 

配置項目。

tree.item(item_id, tags=()) 

啓動應用程序。

app.mainloop() 

您會注意到有一個黃色的項目,但它在樹視圖下的項目不是紅色的。

+0

你能解釋一下你的代碼嗎?這樣,它會幫助其他人理解它是如何工作的。 –

+1

當然,加了一些解釋。 –