2015-09-05 123 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

当然,加了一些解释。 –