You should use QFileSystemModel
instead QDirModel
:
The usage of QDirModel is not recommended anymore. The
QFileSystemModel class is a more performant alternative.
Qt documentation: QDirModel and QFileSystemModel
For your question - look for combination of flags: QDir::AllDirs | QDir::Files
in setFilter
Simple example, if you use 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();
Simple example, if you use 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();