我的tkinter GUI中有一個treeview。每次我創建另一個類的新實例時,都會在樹視圖中插入一個新項目。我如何將類實例存儲在樹視圖中,以便在樹視圖中單擊它時可以調用實例上的函數?在Python Tkinter Treeview中存儲類實例
0
A
回答
0
class MyClass(object):
def __init__(self, text):
self.text = text
self.value = len(text) * 5
class App(object):
def __init__(self):
self.root = Tk()
self.tree = ttk.Treeview(self.root)
self.construct()
def construct(self):
self.tree["columns"]=("one","two")
self.tree.column("one", width=100)
self.tree.column("two", width=100)
self.tree.heading("one", text="coulmn A")
self.tree.heading("two", text="column B")
self.tree.insert("" , 0, text="Line 1", values=("1A","1b"))
id2 = self.tree.insert("", 1, "dir2", text="Dir 2")
self.tree.insert(id2, "end", "dir 2", text="sub dir 2", values=("2A","2B"))
self.tree.insert("", 3, "dir3", text="Dir 3")
self.tree.insert("dir3", 3, text="sub dir 3",values=("3A"," 3B"))
self.tree.bind("<Double-1>", self.on_double_click)
self.tree.pack()
self.my_dict = {
'Dir 2' : MyClass('Dir 2'),
'Dir 3': MyClass('Dir 3'),
'sub dir 2': MyClass('sub dir 2'),
'sub dir 3': MyClass('sub dir 3')
}
self.root.mainloop()
def on_double_click(self, event):
item = self.tree.selection()[0]
print(self.my_dict[self.tree.item(item,"text")])
print(self.my_dict[self.tree.item(item,"text")].value)
if __name__ == '__main__':
App()
self.my_dict
存儲您嘗試呼叫的對象的直接引用。雙擊對象時,將執行on_double_click
事件,在這種情況下,它會打印對象引用和在__init__
上實例化的對象的.value
屬性。
這是您可以根據自己的意圖編寫自己想要做的事情的基礎。
相關問題
- 1. 存儲在列表中以存儲單獨實例的Python類實例
- 2. 在Python中將類的實例存儲在字典中
- 3. 將類實例存儲在文件中
- 4. 在python應用中存儲類實例的正確方法
- 5. Python tkinter treeview列大小
- 6. 從TreeView實例填充TreeView
- 7. 在Tkinter中隱藏TreeView列
- 8. Python,如何從存儲在數據庫中的類實例化類?
- 9. C++:在分配的內存中存儲類實例
- 10. 在java的另一個類中存儲類的實例
- 11. 在C++類中存儲Objective-C類實例
- 12. Tkinter實時比例
- 13. Python;類實例
- 14. Tkinter Treeview Column Sorting
- 15. tkinter treeview - 拖放?
- 16. 用於存儲類實例的Python列表?
- 17. Python Tkinter實例沒有屬性'tk'
- 18. 當一個類實例化,存儲該實例由用戶
- 19. 將自定義類實例存儲在Silverlight中的IsolatedStorage中
- 20. EC2 m1.Medium實例類型表明實例存儲爲410GB
- 21. 在Spring中存儲bean實例
- 22. Python Tkinter Treeview - 迭代'get_children'輸出
- 23. python 3 - tkinter - ttk treeview:查看列文本
- 24. Python中的類實例
- 25. Python中的類實例
- 26. Python:爲什麼Tkinter類實例化必須使用Frame?
- 27. Python Tkinter條目稍後存儲變量
- 28. 在python中使用tkinter模塊的treeview列中的sql輸出
- 29. 實例存儲器在EC2實例中丟失
- 30. 在WCF服務實例的實例變量中存儲OperationContext.Current
您需要將樹視圖的引用存儲到類中,然後使用該類的可用函數生成上下文菜單。除非您選擇某些按鈕時啓用/禁用。 – Casey
你是什麼意思從樹視圖的參考? – JBoy
在字典中存儲參考。使索引與樹條目的文本相同。然後將一個事件綁定到樹上。 – Casey