C++ QTreeWdiget在特定位置添加子元素

C++ QTreeWdiget在特定位置添加子元素,c++,qt,qtreewidget,qtreewidgetitem,C++,Qt,Qtreewidget,Qtreewidgetitem,我正在尝试以一种可以将元素插入到所需位置的方式构建一棵树。这是我的树的初始阶段: +Project +--Version 1.0 +--Version 2.0 现在,假设我制作了一个版本1.1,我想在version1.0和version2.0之间的位置添加它。比如: +Project +--Version 1.0 +--Version 1.1 +--Version 2.0 我尝试使用insertChild()添加它,但该项没有在树中创建。代码如下: void VersionGuiElemen

我正在尝试以一种可以将元素插入到所需位置的方式构建一棵树。这是我的树的初始阶段:

+Project
+--Version 1.0
+--Version 2.0
现在,假设我制作了一个版本1.1,我想在
version1.0
version2.0
之间的位置添加它。比如:

+Project
+--Version 1.0
+--Version 1.1
+--Version 2.0
我尝试使用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);
}