Есть ли способ автоматически добавлять расширения к файлу с помощью QFileDialog в Linux

Я хочу, чтобы пользователь мог ввести имя для файла, который будет сохранен как XML-файл. В настоящее время в Windows и Mac, если вы введете «test» в качестве имени файла, он автоматически добавит «.xml», чего я и хочу. К сожалению, при тестировании сборки Linux я обнаружил, что ввод имени файла без расширения будет сохранен как обычный файл. Пользователь должен указать расширение в строке файла (например, «test.xml»), чтобы он был сохранен в правильном формате.

Код, который я использую, приведен ниже. Является ли это ошибкой Qt или есть способ указать в Qt, что он должен добавить расширение, если оно не найдено?

// Get value for "dir". If the setting doesn't exist then use
// the the path in "defaultsave.directory"
QString prevPath = prevValues.value("dir", QString::fromStdString(
  ConfigService::Instance().getString("defaultsave.directory"))).toString();

QString filter;
filter.append("Files (*.xml)");
filter += ";;AllFiles (*.*)";
QString groupingFile = QFileDialog::getSaveFileName(this, "Save Grouping file as", prevPath, filter);
8
задан Robert Whitley 22 March 2012 в 12:21
поделиться