1
QDirModel
에 폴더와 파일이 모두 들어 있기를 원합니다. (AllEntries
을 사용하고 있습니다).QDirModel setNameFilters 폴더를 숨 깁니다.
내 QDirModel
에 setNameFilters()
을 호출 할 때 모든 폴더가 느슨해집니다. 폴더를 필터링에서 제외 할 수있는 방법이 있습니까?
감사합니다.
QDirModel
에 폴더와 파일이 모두 들어 있기를 원합니다. (AllEntries
을 사용하고 있습니다).QDirModel setNameFilters 폴더를 숨 깁니다.
내 QDirModel
에 setNameFilters()
을 호출 할 때 모든 폴더가 느슨해집니다. 폴더를 필터링에서 제외 할 수있는 방법이 있습니까?
감사합니다.
대신 QDirModel
QFileSystemModel
을 사용해야합니다
QDirModel의 사용은 더 이상 권장되지 않습니다. QFileSystemModel 클래스는 더 효과적인 대안입니다.
Qt는 문서 : QDirModel 귀하의 질문에 대한 QFileSystemModel
- 플래그의 조합을 찾습니다
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();
간단한 예 : 당신이 QDirModel
를 사용하는 경우, setFilter
간단한 예에서 QDir::AllDirs | QDir::Files
, 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();
감사합니다. @Kirill Chernikov. 그러나 문제는 남아 있습니다 .. 어떻게 폴더를 필터링에서 제외 할 수 있습니까? – michalis
문서에서 볼 수 있듯이 "QDir :: AllDirs - 모든 디렉토리 나열 (즉, 디렉토리 이름에 필터 적용 안 함)" 이름에 대한 필터를 설정할 때이 필터는 디렉토리 (폴더)에는 적용되지 않고 파일에 대해서만 적용됩니다. –