有两个父母的QTreeWidgetItem

时间:2019-04-08 05:52:47

标签: c++ qt qtreewidget qtreewidgetitem

我可以以某种方式一次将一个QTreeWidgetItem附加到两个(或多个)节点吗?就是这样:

parent1
 └child1
parent2
 └child1

如果我只对两个父母都做addChild(),则该孩子只会出现在第一位父母上。那有可能吗?还是只有完全复制后代才能获得这样的结果?

1 个答案:

答案 0 :(得分:3)

instructions说:

  

如果孩子已经被插入其他地方,则不会   再次插入。

这意味着唯一的选择是完全复制子级。大致如此:

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;
}