如何获取选定树视图项的值?
How to get the value of a selected treeview item?
我查看了几篇关于此的帖子,他们做了以下工作
-我得到的输出是空白的
-我得到的输出是 id,这几乎没用,除非有人能告诉我如何操作它
-完全没有输出
我只是希望能够单击树视图中的一个项目,并立即获得我刚刚单击的文本
def OnDoubleClick(event):
item = course1_assessments.focus()
print (item)
course1_assessments.bind("<<TreeviewSelect>>", OnDoubleClick)
如果我点击第一个项目,此代码会给我 'I001',当我点击第二个项目时,我会 'I002'; id 假设这些是树中的列值,但对我来说仍然没用
您可以使用小部件的 selection
方法获取所选项目的列表。它将 return 一个项目 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()
我也试过在其中一列中检索 ID 以用于另一个函数。我注意到在选择多个元素时,它们 return 与在结合 SHIFT 进行鼠标点击时最后选择的 ID 相同。打印到控制台时,使用鼠标单击和 CTRL 一次选择一个。
我还发现,要将输出从 ID 更改为另一列,请更改方括号内的值。根据需要将其与上述答案结合起来。为了提供我的实施上下文,我使用下面代码中的 ID returned 来查询数据库以检索我想要的文本,然后将其输出到另一个框架或文本框小部件中。
def db_reader_selector(self, event):
return print(self.db_reader.selection()[0])
我查看了几篇关于此的帖子,他们做了以下工作
-我得到的输出是空白的
-我得到的输出是 id,这几乎没用,除非有人能告诉我如何操作它
-完全没有输出
我只是希望能够单击树视图中的一个项目,并立即获得我刚刚单击的文本
def OnDoubleClick(event):
item = course1_assessments.focus()
print (item)
course1_assessments.bind("<<TreeviewSelect>>", OnDoubleClick)
如果我点击第一个项目,此代码会给我 'I001',当我点击第二个项目时,我会 'I002'; id 假设这些是树中的列值,但对我来说仍然没用
您可以使用小部件的 selection
方法获取所选项目的列表。它将 return 一个项目 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()
我也试过在其中一列中检索 ID 以用于另一个函数。我注意到在选择多个元素时,它们 return 与在结合 SHIFT 进行鼠标点击时最后选择的 ID 相同。打印到控制台时,使用鼠标单击和 CTRL 一次选择一个。
我还发现,要将输出从 ID 更改为另一列,请更改方括号内的值。根据需要将其与上述答案结合起来。为了提供我的实施上下文,我使用下面代码中的 ID returned 来查询数据库以检索我想要的文本,然后将其输出到另一个框架或文本框小部件中。
def db_reader_selector(self, event):
return print(self.db_reader.selection()[0])