1

QDirModelフォルダとファイルの両方を含む が必要です (したがって、 を使用しています) AllEntries

問題は、 を呼び出しsetNameFilters()ているときにQDirModel、すべてのフォルダーが失われることです。フォルダをフィルタリングから除外する方法はありますか?

ありがとうございました。

4

1 に答える 1

2

QFileSystemModel代わりに使用する必要がありますQDirModel

QDirModel の使用は推奨されなくなりました。QFileSystemModel クラスは、よりパフォーマンスの高い代替手段です。

Qt ドキュメント: QDirModelQFileSystemModel

あなたの質問について - フラグの組み合わせを探してください: QDir::AllDirs | QDir::Filesin setFilter

使用する場合の簡単な例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();
于 2016-06-29T11:55:14.720 に答える