3

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

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

现在,假设我制作了一个 1.1 版,我想将它添加到 beetweenVersion 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);
    }
}

但是树中没有插入任何东西......知道我做错了什么吗?

4

1 回答 1

0

You should point out the parent of tree node when you create it:

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

Then:

if(idxAfter == -1)
{
    projectItem->addChild(versionItem);
}
else
{
    projectItem->insertChild(idxAfter, versionItem);
}
于 2012-10-18T08:22:32.587 回答