有没有办法在tkinter树视图中重置索引?

时间:2019-04-17 17:43:57

标签: python tkinter treeview

是否可以在tkinter的树视图小部件中重置索引? 使用selection()方法,我获得了当前选定子项的索引(I001,I002 ...)。 使用delete()方法删除了选定的子项,但是,当我向树视图小部件中添加更多数据时,它将对新子项的索引进行计数,就像从未删除过的子项一样。 例如,树视图小部件中唯一的孩子的文本是“ hi”,其索引是I001。我删除它并添加“你好”。 “ hello”的索引将是I002而不是I001(我希望它是I001)。

1 个答案:

答案 0 :(得分:0)

没有什么要求您使用自动生成的ID。使用id参数向树中添加项目时,可以提供自己的ID。您可以使用增加计数器的函数来生成自己的ID。

它看起来像这样:

counter = 0
def next_id():
    global counter
    counter += 1
    return "Item%.4d" % counter

def reset():
    global counter
    for item in tree.get_children():
        tree.delete(item)
    counter = 0
...
tree.insert("", "end", id=next_id(), text="this will have id Item0001")
tree.insert("", "end", id=next_id(), text="this will have id Item0002")
...
reset()
tree.insert("", "end", id=next_id(), text="this will have id Item0001")
tree.insert("", "end", id=next_id(), text="this will have id Item0002")
...