Я хочу сделать менеджер, который может отображать определенные папки.Предположим, я хочу отфильтровать папки без расширений.
Попробуйте 1: QFileSystemModel.setNameFilters ()
... ...
# get file data
path = 'f:/tmp2'
dirModel = QtWidgets.QFileSystemModel()
dirModel.setRootPath(path)
dirModel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Dirs)
# filter folders
dirModel.setNameFilters(['*.asset'])
# worked. but i want the opposite: that folders do not contain ".asset".
#dirModel.setNameFilters(['(^\.asset)$'])
# regular expression is not work. nothing shows up.
# show window
... ...
Попробуйте 2: QtCore.QSortFilterProxyModel ()
... ...
# get file data
path = 'f:/tmp2'
dirModel = QtWidgets.QFileSystemModel()
dirModel.setRootPath(path)
dirModel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Dirs)
# filter folders
proxyModel = QtCore.QSortFilterProxyModel()
proxyModel.setSourceModel(dirModel)
proxyModel.setFilterRegExp("(^\.asset)$") # if no this line, all folders are displayed; add this line, nothing shows up.
# show window
... ...
Я пытался изменить регулярное выражение, но результаты были такими же.