我想删除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);           
              }        
        }    
   }
}