QDirModel setNameFilters隐藏文件夹



我想有一个包含文件夹和文件的QDirModel(所以我使用AllEntries)。

问题是,当我在我的QDirModel上调用setNameFilters()时,我会丢失所有的文件夹。是否有办法将文件夹从过滤中排除?

谢谢。

你应该用QFileSystemModel代替QDirModel:

不再推荐使用QDirModel。的QFileSystemModel类是一个性能更好的选择。

Qt文档:QDirModel和QFileSystemModel

对于您的问题-在setFilter

中寻找标志:QDir::AllDirs | QDir::Files的组合简单的例子,如果你使用QDirModel:
QTreeView view;
QStringList filters;
filters << "*.txt";
QDirModel* dirModel = new QDirModel(&view);
dirModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
dirModel->setNameFilters(filters);
view.setModel(dirModel);
view.show();
简单的例子,如果你使用QFileSystemModel:
QTreeView view;
StringList filters;
filters << "*.txt";
QFileSystemModel* fileSystemModel = new QFileSystemModel(&view);
fileSystemModel->setRootPath("C:/");
fileSystemModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
fileSystemModel->setNameFilterDisables(false);
fileSystemModel->setNameFilters(filters);
view.setModel(fileSystemModel);
view.show();

相关内容

  • 没有找到相关文章

最新更新