我写了一个程序,只要index还有子项,rmfile就会递归地自己调用自己,但存在问题,这是为什么呢?
我把程序和问题贴出来吧。大家帮忙看看吧
model = new QDirModel ;
list = new QListView() ;
list->setModel(model);
void Imagewindow::rmfile(QModelIndex &index)
{
QModelIndex child_index;
int column, row, i, j;
model->setReadOnly(false);
if(!model->isDir(index))
{
model->remove (index);
list->update(index) ;
}
else
{
if(model->hasChildren (index))
{
/*这样求出来的column与row,数值不对*/
column = model->columnCount(index);
row = model->rowCount(index);
qDebug("column = %d, row = %d!",column, row);
for(i = 0; i <column ; i++)
for(j = 0; j <row ; j++)
{
child_index = model->index(row,column,index);
filename = model->fileName(child_index); //filename没用值,
qDebug("name = %s!",qPrintable(filename));
if(child_index.isValid()) //居然没有一个是有效的。
rmfile(child_index) ; //递归地调用此函数
}
}
model->rmdir (index);
list->update(index) ;
}
}