0

我有一个简单的 QML 应用程序,当按下按钮时我会打开一个 FileDialog。

我意识到,当我打开 FileDialog 时,当前的应用程序内存增加了很多(只有 12 Mb 的对话框),所以我在 FileDialog 中添加了一个加载器。因此,只有在我打开对话框时才会增加内存。但我的问题是我无法释放这个内存,即使将 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;
        }
    }
}

还有我的带有 FileDialog 的 QML 文件:MyFileDialog.qml

import QtQuick 2.1
import QtQuick.Dialogs 1.0

FileDialog {
    id: fileDialog
}

我究竟做错了什么?有什么想法或建议吗?

提前非常感谢,迭戈

4

0 回答 0