在 tkinter 树视图中合并节点

Merge nodes in tkinter treeview

如何在 tkinter 树视图小部件中合并两个节点?

假设您的树视图中有这个简单的结构:

-Parent1
   -Child1
-Parent2
   -Child2

并且您想合并两个父项以创建以下结构:

-Parent1
   -Child1
   -Child2

父节点的iid是已知的。基本上它是将子节点转移到一个父节点到另一个父节点,并删除没有子节点的父节点。 tkinter 中是否有实现的方法,还是您必须自己定义一些东西?

创建基本示例的示例代码:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

tree = ttk.Treeview(
    root,
    selectmode='browse'
)
tree.insert('', 0, iid=1, text='Parent1')
tree.insert('', 0, iid=2, text='Parent2')

tree.insert(1, 0, text='Child 1')
tree.insert(2, 0, text='Child 2')

tree.pack()
root.mainloop()

您可以使用tree.move()将'Child 2'移动到'Parent 1':

tree.move(child2, 1, 'end')

其中 child2 是 'Child 2' 的 iid:

child2 = tree.insert(2, 0, text='Child 2')

然后删除'Parent 2':

tree.delete(2)