我有一个树视图,并已插入一些数据,如下所示。
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返回到树视图吗?
要获得iid
,您可以使用identify()
函数:
tree.identify(event.x, event.y) # item at row "x" and column "y"
iid
参数代表项目标识符,对于每个项目都是唯一的,您可以为其提供所需的值。
学习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。
希望这能帮助下一个人一点点。