QML FileDialog
для сохранения файла отлично работает в режиме отладки.
Код:
import QtQuick 2.5
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.2
import Qt.labs.settings 1.1
import QtQuick.Controls.Styles 1.4
import Qt.labs.platform 1.0
Item {
property string exportSceneName: "exported_scene"
property url exportFolder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation)
signal startExport()
onStartExport: {
runLogic()
}
function runLogic() {
// ...
}
Button {
onClicked: {
fileDialog.open()
}
}
FileDialog {
id: fileDialog
folder: exportFolder
fileMode: FileDialog.SaveFile
title: qsTr("Export Scene As STL")
onAccepted: {
exportFolder = folder
var name = basename(file)
exportSceneName = name
startExport()
}
}
function basename(str) {
return (String(str).slice(String(str).lastIndexOf("/")+1))
}
}
Режим выпуска
Удивительно, но в режиме деблокирования диалоговое окно имеет тип открыть, а не тип сохранить:
Я пытался:
- Изменить версии импорта QML
- Очистите каталог сборки выпуска
- Изменить
qtquickcontrols2.conf
файл
Однако ни один из них не работал! Я изучил похожие сообщения, такие как этот, но предложения не сработали. Что еще я могу попробовать? Спасибо.
РЕШЕНИЕ
Исправлено путем удаления этого импорта внутри файла QML:
import QtQuick.Dialogs 1.2