我的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