В вашем коде есть две проблемы. Первый: третий параметр QFileDialog::getSaveFileUrl()
должен иметь тип QUrl
, и вы передаете QString
. Вторая проблема заключается в том, что, как сказал @jwdonahue, третий параметр - это начальный каталог, а не имя файла по умолчанию. Это может быть и другое, как сказано в документации :
Рабочий каталог диалогового окна файла будет установлен на dir . Если dir содержит имя файла, файл будет выбран.
Цитата из QFileDialog::getSaveFileName()
, но в документации о QFileDialog::getSaveFileUrl()
говорится :
Функция используется аналогично QFileDialog::getSaveFileName()
. В частности, parent , заголовок , dir , filter , selectedFilter и options являются используется точно так же.
Возможное решение, выбрав каталог по умолчанию (в этом примере каталог пользователя "Documents") и имя файла по умолчанию = "Project1.sfp", будет что-то вроде это:
QDir docsDir(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation));
QUrl pName = QUrl::fromLocalFile(docsDir.filePath("Project1.sfp"));
QUrl pathToSave = QFileDialog::getSaveFileUrl(this, tr("Select Folder"), pName, "Solution (*.sfp)");