【问题标题】:QTreeWdiget adding child element at specific locationQTreeWidget 在特定位置添加子元素
【发布时间】:2012-10-18 08:10:04
【问题描述】:

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

+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);
    }
}

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

【问题讨论】:

    标签: c++ qt qtreewidget qtreewidgetitem


    【解决方案1】:

    你应该在创建树节点的时候指出它的父节点:

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

    然后:

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

    【讨论】:

    • 我试过了,还是一样的结果。该项目未添加到树中:(
    • 奇怪的是没有,虽然它应该。
    • 有人有解决方案吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2013-06-05
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多