Я пытаюсь построить дерево таким образом, чтобы я мог вставить элемент, где я хочу. Это мое дерево на начальном этапе:
+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);
}
}
но ничего не вставляется в дерево … есть идеи, что я делаю неправильно?
Вы должны указать родителя узла дерева при его создании:
QTreeWidgetItem* versionItem = new QTreeWidgetItem(projectItem, QStringList(QString("Version ") + m_version->getVersionText())) ;
Затем:
if(idxAfter == -1)
{
projectItem->addChild(versionItem);
}
else
{
projectItem->insertChild(idxAfter, versionItem);
}
Других решений пока нет …