有没有办法在tkinter treeview中重置索引?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法在tkinter treeview中重置索引?相关的知识,希望对你有一定的参考价值。
有没有办法在tkinter中的树视图小部件中重置索引?使用selection()方法,我得到当前所选子项的索引(I001,I002 ...)。使用delete()方法我删除了所选的子节点,但是当我向treeview小部件添加更多数据时,它会计算新子节点的索引,就好像删除的子节点从未被删除一样。例如,树视图小部件中唯一的子文本是“hi”,其索引是I001。我删除它并添加“你好”。 “hello”的索引将是I002而不是I001(我希望它是I001)。
答案
没有任何东西需要您使用自动生成的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")
...
以上是关于有没有办法在tkinter treeview中重置索引?的主要内容,如果未能解决你的问题,请参考以下文章
python 3 - tkinter - ttk treeview:查看列文本
如何在 tkinter.ttk Treeview 上完全更改背景颜色