Pyqt5: не показывать пустые папки после фильтрации файлов с помощью setNameFiltersPython

Программы на Python
Ответить
Anonymous
 Pyqt5: не показывать пустые папки после фильтрации файлов с помощью setNameFilters

Сообщение Anonymous »

Используя QTreeView и QListView, я хочу показывать только файлы, которые можно использовать для определенного программного обеспечения.
QTreeview показывает только папки, а QListView показывает файлы в папках:

Код: Выделить всё

self.treeview = QtWidgets.QTreeView()
self.listview = QtWidgets.QListView()

self.dirModel = QtWidgets.QFileSystemModel()
self.dirModel.setRootPath(QtCore.QDir.rootPath())
self.dirModel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.AllDirs)

self.dirModel.setFilter()
self.fileModel = QtWidgets.QFileSystemModel()
self.fileModel.setFilter(QtCore.QDir.NoDotAndDotDot |  QtCore.QDir.Files)
QListView фильтруется для отображения только файлов .gfr с

Код: Выделить всё

self.fileModel.setNameFilters(['*.gfr'])
он ​​работает так, как ожидалось, но в древовидном представлении теперь отображается много папок без содержимого.
мой вопрос: как я могу автоматически скрыть папки, отображаемые как пустые из-за фильтрации?
РЕДАКТИРОВАТЬ: Цель состоит в том, чтобы предложить пользователю только те папки, в которых он/она может найти полезные файлы, и избежать случайного поиска в разных папках. когда пользователь нашел нужный файл, он дважды щелкните его, чтобы открыть с помощью программного обеспечения.
Структура папок следующая, имя заглавной буквы фиксировано:

Код: Выделить всё

root

|__assetType1 (changing name, 5 possible names )

|__asset1 (changing name, from 1 to around 50 possible names)

|__WORK(fixed name for all assets )

|__SHD(fixed name - contain the wanted gfr files when they exist)

|__TEX (fixed name, 5 possible names, all needs to be hidden except 'SHD' )

|__PUBLISH (fixed name - needs to be hidden )
цель состоит в том, чтобы скрыть папку «актив» и все подпапки из TreeView, если в ее подкаталоге WORK/SHD не найдены файлы «.gfr».

Подробнее здесь: https://stackoverflow.com/questions/636 ... amefilters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»