Skip to main content
 首页 » 编程设计

Python tkinter treeview 获取/返回所选项目的父名称

2025年05月04日14sxdcgaq8080

我试图在选择事件时返回 tkinter treeview 选择的父级,所以如果选择更改为“子级”,我希望它打印“父级”,下面的工作示例,目前它打印选择,而不是选择的父级:

try: 
    import tkinter as tk 
    import tkinter.ttk as ttk 
except ImportError: 
    import Tkinter as tk 
    import ttk 
 
class App: 
    def __init__(self): 
        self.root = tk.Tk() 
        self.tree = ttk.Treeview(selectmode='browse') 
        self.tree.pack(side="top", fill="both") 
        self.tree.bind('<<TreeviewSelect>>', self.tree_select_event) 
        self.parent_iid = self.tree.insert("", "end", text="Parent") 
        self.child_iid = self.tree.insert(self.parent_iid, "end", text="Child") 
 
        self.root.mainloop() 
 
    def tree_select_event(self, event): 
        print (self.tree.item(self.tree.selection()[0])['text']) 
 
if __name__ == "__main__": 
    app = App() 

当前在选择 Child 时打印:

"Child" 

选择 child 后的期望输出:

"Parent" 

请您参考如下方法:

试试这个:

def tree_select_event(self, event): 
    item_iid = self.tree.selection()[0] 
    parent_iid = self.tree.parent(item_iid) 
 
    if parent_iid: 
        print(self.tree.item(parent_iid)['text']) 
    else: 
        print(self.tree.item(item_iid)['text']) 

..它有据可查 here .