我希望用户从 Tkinter 树的不同分支中选择多个节点。这样我就可以进行进一步的处理,我应该知道每个选择的父分支。
- 当我只选择一个节点时,我可以使用下面的代码获取父 ID。
- 当我选择多个节点(按 ctrl 键)时,我只得到第一个选择的父节点
如何同时完成所有选择的父节点?
这是我的工作代码:
import ttk
import Tkinter as tk
def select():
item_iid = tree.selection()[0]
parent_iid = tree.parent(item_iid)
node = tree.item(parent_iid)['text']
print node
root = tk.Tk()
tree = ttk.Treeview(root,show="tree")#, selectmode=EXTENDED)
tree.config(columns=("col1"))
#SUb treeview
style = ttk.Style(root)
style.configure("Treeview")
tree.configure(style="Treeview")
tree.insert("", "0", "item1", text="Branch1",)
tree.insert("", "1", "item2", text="Branch2")
#sub tree using item attribute to achieve that
tree.insert("item1", "1", text="FRED")
tree.insert("item1", "1", text="MAVIS")
tree.insert("item1", "1", text="BRIGHT")
tree.insert("item2", "2", text="SOME")
tree.insert("item2", "2", text="NODES")
tree.insert("item2", "2", text="HERE")
tree.pack(fill=tk.BOTH, expand=True)
tree.bind("<Return>", lambda e: select())
root.mainloop()
电流输出:
仅选择一个节点时能够显示父名称
完成后仅显示第一个的多选父节点,期望每个选定节点的父节点名称。
Branch1 显示,即仅用于第一个选择: