从项目Ttk Treeview中删除标记

时间:2015-09-05 14:09:24

标签: python select tags 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()

1 个答案:

答案 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()

您会注意到有一个黄色项目,但树状视图中的项目不是红色。