2016-06-29 6 views
1

QDirModel에 폴더와 파일이 모두 들어 있기를 원합니다. (AllEntries을 사용하고 있습니다).QDirModel setNameFilters 폴더를 숨 깁니다.

QDirModelsetNameFilters()을 호출 할 때 모든 폴더가 느슨해집니다. 폴더를 필터링에서 제외 할 수있는 방법이 있습니까?

감사합니다.

답변

2

대신 QDirModelQFileSystemModel을 사용해야합니다

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(); 
+0

감사합니다. @Kirill Chernikov. 그러나 문제는 남아 있습니다 .. 어떻게 폴더를 필터링에서 제외 할 수 있습니까? – michalis

+0

문서에서 볼 수 있듯이 "QDir :: AllDirs - 모든 디렉토리 나열 (즉, 디렉토리 이름에 필터 적용 안 함)" 이름에 대한 필터를 설정할 때이 필터는 디렉토리 (폴더)에는 적용되지 않고 파일에 대해서만 적용됩니다. –