返回Tkinter Treeview iid

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了返回Tkinter Treeview iid相关的知识,希望对你有一定的参考价值。

我有一个树视图,并已插入一些数据,如下所示。

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。

希望这能帮助下一个人一点点。

以上是关于返回Tkinter Treeview iid的主要内容,如果未能解决你的问题,请参考以下文章

tkinter中treeview隔行显示不同的颜色

tkinter Treeview:获取选定的项目值

python 3 - tkinter - ttk treeview:查看列文本

tkinter Treeview 小部件插入数据

插入带标签的行时出现Tkinter Treeview问题

如何使用 Tkinter 清除整个 Treeview