0

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

4

1 回答 1

1

没有什么要求您使用自动生成的 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")
...
于 2019-04-17T19:18:39.657 回答