|
地板
楼主 |
发表于 2020-4-7 14:07:24
|
只看该作者
用递归实现了
下面是 collapse 所有子节点的代码
expand 所有子节点的代码类似,或者在递归函数上加一个 bool 参数就能实现。
/*collapse all child nodes*/
int childCount = model->rowCount(index);
recursive_collapse(index,childCount);
void WellImportDialog::recursive_collapse(const QModelIndex index,int childCount)
{
for(int childNo=0;childNo<childCount;childNo++)
{
QModelIndex childIndex = index.child(childNo,0);
if(ui->treeView_dir->isExpanded(childIndex))
{
ui->treeView_dir->setExpanded(childIndex,false);
if(int rowCount = model->rowCount(childIndex)>0)
recursive_collapse(childIndex,rowCount);
}
}
}
|
|