Скрыть папку из QFileSystemModel

Я хотел бы знать, как скрыть определенную папку в дереве с помощью QFileSystemModel.

Я знаю, что мы можем фильтровать папки, чтобы показывать только некоторые файлы, используя setFilter, но я не знаю, как фильтровать папку.

Я хочу отображать папки, кроме одной. Я знаю имя этой папки, поэтому я могу выбрать ее по имени.

Кто-нибудь знает, как скрыть/удалить эту папку из списка, пожалуйста?


person Jeanstackamort    schedule 31.01.2014    source источник
comment
Вы пробовали QFileSystemModel::setNameFilters()?   -  person vahancho    schedule 31.01.2014
comment
Да, я уже использую QFileSystemModel::setNameFilters() для фильтрации файлов по расширению в папку. Поэтому, когда я применяю фильтр, я вижу только файлы с нужным мне расширением. В моем случае я не хочу видеть папку с именем имя_папки.   -  person Jeanstackamort    schedule 31.01.2014


Ответы (1)


Фильтры могут использовать подстановочные знаки, но эти подстановочные знаки необязательны. Вы можете использовать фильтры, чтобы отфильтровать имя без подстановочного знака.

QStringList filters;
filters << "*.badext" << "foldername";
model->setNameFilters(filters);

Если вы хотите более жесткого контроля над ним — например, чтобы отфильтровать только папку с заданным именем, а не файл с заданным именем, вам нужно реализовать QSortFilterProxyModel.

person Kuba hasn't forgotten Monica    schedule 31.01.2014
comment
Извините за задержку с ответом. Да, я хочу отфильтровать папку с заданным именем. Итак, не могли бы вы дать мне подсказки, как реализовать это с помощью QSortFilterProxyModel, пожалуйста? Я проверил этот класс и не нашел то, что ищу. - person Jeanstackamort; 11.02.2014