Как установить выбранный фильтр на QFileDialog?
У меня есть диалог с открытым файлом с тремя фильтрами:
QString fileName = QFileDialog::getOpenFileName(
this,
title,
directory,
tr("JPEG (*.jpg *.jpeg);; TIFF (*.tif);; All files (*.*)")
);
Отображается диалоговое окно с выбранным в качестве фильтра по умолчанию "JPEG". Я хотел поместить список фильтров в алфавитном порядке, чтобы "Все файлы" были первыми в списке. Если я это сделаю, то "Все файлы" - это выбранный по умолчанию фильтр, который я не хочу.
Могу ли я установить выбранный по умолчанию фильтр для этого диалога или мне нужно перейти с первым указанным фильтром?
Я попытался указать 5-й аргумент (QString
), чтобы установить фильтр по умолчанию, но это не сработало. Я думаю, что это может быть использовано только для получения фильтра, установленного пользователем.
Ответы
Ответ 1
Вот так:
QString selfilter = tr("JPEG (*.jpg *.jpeg)");
QString fileName = QFileDialog::getOpenFileName(
this,
title,
directory,
tr("All files (*.*);;JPEG (*.jpg *.jpeg);;TIFF (*.tif)" ),
&selfilter
);
Я согласен с тем, что docs (https://doc.qt.io/qt-4.8/qfiledialog.html#getOpenFileName) немного расплывчаты в этом вопросе, но мне потребовалась только одна попытка угадать, как для этого.
Это один случай, когда он быстрее пытается просто попробовать, чем задавать вопрос.