我用Tkinter創建一個GUI,GUI的主要部分是兩個Treeview對象。當一個項目(即目錄)是點擊兩次時,我需要Treeview
對象的內容到更改。單擊Tkinter Treeview小部件的項目的命令?
如果Treeview項是按鈕,我只能將command
設置爲適當的函數。但是我無法找到一種方法爲Treeview項目創建"on_click"
行爲。
什麼Treeview選項,方法等,使我能夠將命令綁定到特定項目並執行該命令"on_click"
?
我用Tkinter創建一個GUI,GUI的主要部分是兩個Treeview對象。當一個項目(即目錄)是點擊兩次時,我需要Treeview
對象的內容到更改。單擊Tkinter Treeview小部件的項目的命令?
如果Treeview項是按鈕,我只能將command
設置爲適當的函數。但是我無法找到一種方法爲Treeview項目創建"on_click"
行爲。
什麼Treeview選項,方法等,使我能夠將命令綁定到特定項目並執行該命令"on_click"
?
如果您希望在用戶雙擊時發生某些情況,請將綁定添加到"<Double-1>"
。由於一次單擊就會設置選擇,在回調中,您可以查詢小部件以找出所選內容。例如:如果選擇了多個元素,並且用戶使用SHIFT+CLICK
(至少在Mac)
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()
先前的溶液中失敗。
這裏是一個更好的解決方案:
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()