在Python tkinter treeview中,我试图根据所选treeview项的iid来显示某些内容,它发生在选择事件(鼠标单击)上,但我无法使其工作:
def tree_click_event (event):
iid = treedisplay.identify(event.x,event.y)
treedisplay = ttk.Treeview(root,selectmode='browse')
treedisplay.bind('<<TreeviewSelect>>', tree_click_event)
treedisplay.pack(side='top', fill='both', expand=1)
错误:
^{pr2}$这可以归结为创建树,将它打包到tkinter窗口中,寻找熟悉这个模块的人来确切地知道我做错了什么
感谢您的示例@BryanOakley,它可以获取项目的文本。难道没有办法让下面的代码工作吗?在
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.tree_click_event)
for i in range(10):
self.tree.insert("", "end", text="Item %s" % i)
self.root.mainloop()
def tree_click_event(self, event):
iid = self.tree.identify(event.x,event.y)
print (iid)
if __name__ == "__main__":
app = App()
identify需要三个参数,而您只传递了两个参数。第一个参数表示要标识的组件,并且必须是以下内容之一:region、item、column、row或element。在
例如:
注意:虽然上面的语法是正确的,但它不会完全像您所认为的那样。在
<<TreeviewSelect>>
事件的情况下,您不会得到x和y坐标。这是因为事件可以由键盘和鼠标事件触发。identify
方法应该用于对鼠标事件的显式绑定,并且大多只用于低级绑定。在如果需要选定的项,请使用
^{pr2}$selection
方法,该方法将返回项目ID的列表:相关问题 更多 >
编程相关推荐