从项目中删除标签Ttk Treeview
问题描述:
我想为我的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()
答
创建一个窗口和一个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()
您会注意到有一个黄色的项目,但它在树视图下的项目不是红色的。
你能解释一下你的代码吗?这样,它会帮助其他人理解它是如何工作的。 –
当然,加了一些解释。 –