QFileSystemModel :: canFetchMore()始终返回false

时间:2012-09-24 09:19:46

标签: qt qt4

我有以下代码,我想检查是否存在任何子目录。我希望canFetchMore()fn返回true(因为根目录包含子目录)。但它返回false。在调用canFetchMore()fn。

之前是否还有其他fn要调用
QFileSystemModel model;
model.setFilter(QDir::AllDirs);
model.setRootPath("/");
QModelIndex index = model.index(model.rootPath());
qDebug()<<index.child(0,0).isValid()<<model.canFetchMore(index)<<index;

我尝试过使用hasChildren()fn并且无论文件夹是否包含子目录,它都会返回true。

1 个答案:

答案 0 :(得分:1)

很奇怪,没有这方面的文件。 方法

  model.setRootPath("/");

自动致电model.fetchMore(index);。这意味着此时已找到所有子目录。这就是你的调用model.canFetchMore(index)返回false的原因,因为没有更多的子目录可以获取。

一种方法(使用QDirQFileInfo):

QDir mytopdir("/path/to/dir");
if(mytopdir.exists()){
    QFileInfoList list = mytopdir.entryInfoList();
    foreach(QFileInfo fileInfo, list){
        if(fileInfo.isDir()){
            //FOUND IT!!
        }
    }
}