QTreeWidgetItem с двумя родителями - PullRequest
1 голос
/ 08 апреля 2019

Могу ли я как-нибудь присоединить один QTreeWidgetItem к двум (или более) узлам одновременно?Вот так:

parent1
 └child1
parent2
 └child1

Если я просто наберу addChild() для обоих родителей, ребенок появится только у первого родителя.Это вообще возможно?Или такой результат может быть достигнут только путем полного копирования потомка?

1 Ответ

3 голосов
/ 08 апреля 2019

Инструкции говорят:

Если дочерний элемент уже был вставлен в другое место, он не будет вставлен снова.

Это означаетэтот единственный вариант - полностью скопировать ребенка.Примерно так:

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