我有一个简单的QML应用程序,当按下按钮时我打开一个FileDialog。
我已经意识到当我打开FileDialog时,当前的应用程序内存会增加很多(只有对话框12 MB),所以我在FileDialog中添加了一个Loader。因此,只有在打开对话框时才会增加内存。但我的问题是我无法释放这个内存,甚至将Loader源设置为“”。
我的测试文件:
import QtQuick 2.0
import QtQuick.Controls 1.4
Item {
width: 400
height: 400
Loader {
id: loaderFileDialog
}
Connections {
target: loaderFileDialog.item
onAccepted: {
loaderFileDialog.source = "";
console.log("onAccepted");
}
onRejected: {
loaderFileDialog.source = "";
console.log("onCancel");
}
}
Button {
anchors.centerIn: parent
width: 100
height: 50
text: "Open file";
onClicked: {
loaderFileDialog.source = "qrc:/MyFileDialog.qml";
loaderFileDialog.item.visible = true;
}
}
}
我的QML文件包含FileDialog:MyFileDialog.qml
import QtQuick 2.1
import QtQuick.Dialogs 1.0
FileDialog {
id: fileDialog
}
我做错了什么?有什么想法或建议吗?
提前多多感谢, 迭