QList<QTreeWidgetItem*> lstItem = m_pTree->selectedItems();
QTreeWidgetItem* currItem = lstItem.first();
QTreeWidgetItem* parentItem = currItem->parent();
int nIdex = 0;
if (parentItem) //此处判断其父类存在,即currItem不是tree的topItem
{
QTreeWidgetItem *childItem = new QTreeWidgetItem(parentItem,QStringList(QString("itemInsert")));
nIdex = parentItem->indexOfChild(currItem);
parentItem->insertChild(nIdex+1, childItem);
}
else //else ,如果是topItem则是tree,insertTopItem
{
QTreeWidgetItem *childItem = new QTreeWidgetItem(m_pTree,QStringList(QString("itemInsert")));
nIdex = m_pTree->indexOfTopLevelItem(currItem);
m_pTree->insertTopLevelItem(nIdex+1, childItem);
}
问题:不能正常insert,nIndex的返回值是正确的,但是insert每次都插在父节点的最后
如果是else里面的代码,当new一个item的时候,parent不写成tree,而写成parentItem,则显示正确。这是怎么回事啊。