Нет, вы не можете.Единственный способ сделать это - использовать модель прокси.Вы не можете даже сделать это в QDir::setNameFilters()
, либо.Объяснение следует ...
Вы пытались перечислить файлы каталога в cmd.exe
?Вы можете использовать что-то вроде:
dir *.
, которое бы сработало, верно?А теперь вместо этого откройте Powershell и попробуйте сделать то же самое :-) Это не работает!Конечно, в powershell dir
это псевдоним для Get-ChildItem
, и есть еще один способ выразить это:
Get-ChildItem -Exclude *.*
И вы можете сделать что-то подобное в своем терминале Linux:
ls -I '*.*'
Но в классах Qt нет ничего подобного QDir
, ни QFileSystemModel
.Вам понадобится метод excludeNameFilter()
(кстати, это было бы хорошим дополнением к Qt!).
Объяснение состоит в том, что Qt, powershell и ls используют один и тот же синтаксис глобализации и нет способа выразить на нем положительный фильтр, включающий только файлы без точек, как вы делаете это в регулярном выражении.