我想删除qtreeview某个节点下的所有子节点,每一个节点用的是qstandarditem,方法如下,麻烦大侠帮我改进下,感谢!
void DirTreeView::deleteChildrenItems(QStandardItem *root_item)
{
Q_ASSERT(root_item);
if(root_item->hasChildren())
{
for(int i = 0;i < root_item->rowCount() ;i++)
{
QStandardItem * childitem = root_item->child(i);
if(!childitem->hasChildren())
{
root_item->removeRow(i); //这条执行之后,子节点的rowCount数量就变了,i也没有意义了,所有这是错误
} else
{
deleteChildrenItems(childitem);
}
}
}
}