在QTreeWidget下面有很多层节点的时候,当需要定位到节点时,就要找到这个节点,这里提供两种方法找节点:
//递归查找
QTreeWidgetItem *Dialog::findChildItemRecursion(QTreeWidgetItem *parent, QString name)
{
if(parent->text(0) == name)
return parent;
int nCount = parent->childCount();
for(int i=0;i<nCount;i++)
{
QTreeWidgetItem* childItem = findChildItemRecursion(parent->child(i),name);
if(childItem != NULL)
{
return childItem;
}
}
return NULL;
}
//遍历查找
QTreeWidgetItem *Dialog::findChildItemTraverse(QTreeWidgetItem *parent, QString name)
{
QTreeWidgetItemIterator iter(parent);
while(*iter)
{
if((*iter)->text(0) == name)
{
return (*iter);
}
++iter;
}
return NULL;
}
From:QTreeWidget下查询节点