我正在尝试以一种可以在我想要的位置插入元素的方式构建树。这是我的树在初始阶段:
+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);
}
}
但是没有任何内容插入树中...知道我做错了什么?
答案 0 :(得分:1)
您应该在创建树节点的父节点时指出它:
QTreeWidgetItem* versionItem = new QTreeWidgetItem(projectItem, QStringList(QString("Version ") + m_version->getVersionText())) ;
然后:
if(idxAfter == -1)
{
projectItem->addChild(versionItem);
}
else
{
projectItem->insertChild(idxAfter, versionItem);
}