Raf*_*ler 15 python treeview user-interface tkinter
我正在使用Tkinter创建GUI,GUI的主要部分是两个Treeview对象.当单击一个项目(即目录)时,我需要更改Treeview对象的内容.
如果Treeview项目是按钮,我只能设置command为适当的功能.但我找不到"on_click"为Treeview项创建行为的方法.
Treeview选项,方法等使我能够将命令绑定到特定项并执行该命令"on_click"?
Bry*_*ley 28
如果您想在用户双击时发生某些事情,请添加绑定"<Double-1>".由于单击即可设置选择,因此您可以在回调中查询窗口小部件以找出所选内容.例如:
import tkinter as tk
from tkinter import ttk
class App:
def __init__(self):
self.root = tk.Tk()
self.tree = ttk.Treeview()
self.tree.pack()
for i in range(10):
self.tree.insert("", "end", text="Item %s" % i)
self.tree.bind("<Double-1>", self.OnDoubleClick)
self.root.mainloop()
def OnDoubleClick(self, event):
item = self.tree.selection()[0]
print("you clicked on", self.tree.item(item,"text"))
if __name__ == "__main__":
app = App()
Run Code Online (Sandbox Code Playgroud)
小智 18
当选择多个元素并且用户使用SHIFT+CLICK(至少在Mac上)时,先前的解决方案失败.
这是一个更好的解决方案:
import tkinter as tk
import tkinter.ttk as ttk
class App:
def __init__(self):
self.root = tk.Tk()
self.tree = ttk.Treeview()
self.tree.pack()
for i in range(10):
self.tree.insert("", "end", text="Item %s" % i)
self.tree.bind("<Double-1>", self.OnDoubleClick)
self.root.mainloop()
def OnDoubleClick(self, event):
item = self.tree.identify('item',event.x,event.y)
print("you clicked on", self.tree.item(item,"text"))
if __name__ == "__main__":
app = App()
Run Code Online (Sandbox Code Playgroud)