QTreeWdiget добавляет дочерний элемент в определенное место

Я пытаюсь построить дерево таким образом, чтобы я мог вставить элемент, где я хочу. Это мое дерево на начальном этапе:

+Project
+--Version 1.0
+--Version 2.0

Теперь давайте предположим, что я сделал Версию 1.1, и я хотел бы добавить ее в расположении между Version 1.0 а также Version 2.0, Подобно:

+Project
+--Version 1.0
+--Version 1.1
+--Version 2.0

Я попытался добавить его с помощью insertChild ( http://doc.qt.digia.com/4.7-snapshot/qtreewidgetitem.html#insertChild ) но элемент не создается в дереве. Это код:

void VersionGuiElements::createGuiElements(QTreeWidgetItem* projectItem, int idxAfter)
{
QTreeWidgetItem* versionItem = new QTreeWidgetItem(0, QStringList(QString("Version ") + m_version->getVersionText())) ;

if(idxAfter == -1)
{
projectItem->addChild(versionItem);
}
else
{
projectItem->insertChild(idxAfter, versionItem);
}
}

но ничего не вставляется в дерево … есть идеи, что я делаю неправильно?

3

Решение

Вы должны указать родителя узла дерева при его создании:

QTreeWidgetItem* versionItem = new QTreeWidgetItem(projectItem, QStringList(QString("Version ") + m_version->getVersionText())) ;

Затем:

if(idxAfter == -1)
{
projectItem->addChild(versionItem);
}
else
{
projectItem->insertChild(idxAfter, versionItem);
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]