我有一个树视图,并在其中插入了一些数据,如下所示。
self.tree.insert('', 'end', iid="test1", text="test a", values=("data1", "data2"))
这会在树视图末尾添加一个条目,其中包含文本“test a”和列值“data1”和“data2”。
iid已设置为“test1”。
我想在树视图中返回项目的iid的值,以便我可以将它用于其他函数(我将在此iid中存储文件路径)
我尝试使用treeview.item()并返回以下没有iid的字典:
{'version': 'data1', 'author': 'data2'}
(其中版本和作者是列标题)
所以我的问题:是否有一种简单的方法可以将给定行/条目的iid返回到树视图?
答案 0 :(得分:1)
要获得iid
,您可以使用identify()
功能:
tree.identify(event.x, event.y) # item at row "x" and column "y"
iid
参数代表项目标识符,它对每个项目都是唯一的,您可以为它提供所需的值。
答案 1 :(得分:1)
学习Python,在这里找不到我喜欢的问题的答案,所以我终于弄清了我想要的东西,并以为我会发布我发现的东西。 iid = tree.focus()返回请求的信息。
在我的树状视图中,我添加了以下代码:
for item in tree.selection():
item_child = tree.get_children(item)
item = tree.item(item)
iid = tree.focus()
print ("iid = ", iid, "Item = ", item, "Child iid's =", item_child)
这是我从代码中得到的结果:
{'text': 'TRAINS', 'image': '', 'values': '', 'open': 0, 'tags': ['m']}
iid = 1 Item = {'text': 'TRAINS', 'image': '', 'values': '', 'open': 0, 'tags': ['m']} Child iid's = ('8', '9', '10')
请注意,在结果第二行的开头,iid被列为“ 1”,这是该项目的正确iid。我选择的所有树视图项目都返回了正确的iid。
希望这对下一个人有所帮助。