FileDialog应用程序内存增加很多:使用Loader这个内存不是免费的

时间:2016-11-10 17:49:59

标签: qml loader filedialog memory-consumption

我有一个简单的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
}

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

提前多多感谢, 迭

0 个答案:

没有答案