qtreewdiget在特定位置添加子元素

QTreeWdiget adding child element at specific location

本文关键字:添加 元素 位置 定位 qtreewdiget      更新时间:2023-10-16

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

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

现在,假设我制作了1.1版,我想在Version 1.0Version 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);
}