我希望在我的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()
答案 0 :(得分:2)
创建一个窗口和一个树视图
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'
的项目配置为具有红色背景
tree.tag_configure('tagred', background="red")
配置标记为'tagyellow'
的项目具有黄色背景
tree.tag_configure('tagyellow', background="yellow")
使用我们上面存储的ID item_id
删除该项目中的所有代码。
tree.item(item_id, tags=())
启动应用。
app.mainloop()
您会注意到有一个黄色项目,但树状视图中的项目不是红色。