我可以以某种方式一次将一个QTreeWidgetItem附加到两个(或多个)节点吗?就是这样:
parent1
└child1
parent2
└child1
如果我只对两个父母都做addChild()
,则该孩子只会出现在第一位父母上。那有可能吗?还是只有完全复制后代才能获得这样的结果?
答案 0 :(得分:3)
如果孩子已经被插入其他地方,则不会 再次插入。
这意味着唯一的选择是完全复制子级。大致如此:
QTreeWidgetItem* copy(QTreeWidgetItem* item)
{
if (item == nullptr)
{
return nullptr;
}
QTreeWidgetItem* out = new QTreeWidgetItem(*item);
for (int i = 0; i < item->childCount(); i++)
{
out->addChild(copy(item->child(i)));
}
return out;
}