如何获取所选树视图项的值?

Rya*_*uri 3 python treeview tkinter python-2.7 python-3.x

我已经查看了几篇关于此的帖子,他们已经完成了以下操作

- 我得到的输出是空白的

- 我得到的输出是 id,除非有人可以告诉我如何操作它,否则它实际上是无用的

- 根本没有输出

我只想能够在树视图中单击一个项目,并立即获得我刚刚单击的文本

 def OnDoubleClick(event):
        item = course1_assessments.focus()
        print (item)

 course1_assessments.bind("<<TreeviewSelect>>", OnDoubleClick)
Run Code Online (Sandbox Code Playgroud)

如果我单击第一个项目,此代码给我“I001”,当我单击第二个项目时给我“I002”;id 假设这些是树中的列值,但对我来说仍然没用

Bry*_*ley 10

您可以使用selection小部件的方法获取所选项目的列表。它将返回一个项目 ID 列表。您可以使用该item方法获取有关每个项目的信息。

例如:

import tkinter as tk
from tkinter import ttk

class App:
    def __init__(self):
        self.root = tk.Tk()
        self.tree = ttk.Treeview()
        self.tree.pack(side="top", fill="both")
        self.tree.bind("<<TreeviewSelect>>", self.on_tree_select)

        for i in range(10):
            self.tree.insert("", "end", text="Item %s" % i)

        self.root.mainloop()

    def on_tree_select(self, event):
        print("selected items:")
        for item in self.tree.selection():
            item_text = self.tree.item(item,"text")
            print(item_text)

if __name__ == "__main__":
    app = App()
Run Code Online (Sandbox Code Playgroud)