QTreeWidgetItem* MyTreeWidget::myGetItem(int id, QTreeWidgetItem *parent)
{
int cnt = parent ? parent->childCount() : topLevelItemCount();
for(int i=0; i<cnt; i++)
{
QTreeWidgetItem *item = parent ? parent->child(i) : topLevelItem(i);
qDebug() << item->text(0);
if (item->data(0, Qt::UserRole).toInt() == id)
{
return item;
}
if (item->childCount() > 0)
{
QTreeWidgetItem* myItem = myGetItem(id, item);
if(myItem)
{
return myItem;
}
}
}
return NULL;
}
我改了一下ok了,原来的写法在iglGetFlowTreeWidgetItem( flow, item );第一次遍历为NULL的时候直接返回了。