Image Qml映像和内存释放

Image Qml映像和内存释放,image,qt,memory,qml,qt-quick,Image,Qt,Memory,Qml,Qt Quick,我注意到分配给映像的内存没有释放 如果未启动应用程序,系统具有以下内存值:423MiB/1985MiB(通过nvidia smi检查) 当我启动应用程序并多次单击(更改图像源)时,使用的内存正在增加(1次单击可增加4-5MB):1950MiB/1985MiB 将“缓存”属性设置为false没有帮助 我找到了解决方法:更改图像可见性,但在这种情况下需要很多图像项 是否存在使用“源”属性不“可见”的解决方案 qml来源: Image { id: trg anchors.fill: p

我注意到分配给映像的内存没有释放

如果未启动应用程序,系统具有以下内存值:423MiB/1985MiB(通过nvidia smi检查)

当我启动应用程序并多次单击(更改图像源)时,使用的内存正在增加(1次单击可增加4-5MB):1950MiB/1985MiB

将“缓存”属性设置为false没有帮助

我找到了解决方法:更改图像可见性,但在这种情况下需要很多图像项

是否存在使用“源”属性不“可见”的解决方案

qml来源:

Image {
    id: trg
    anchors.fill: parent
    cache: false

    states: [
        State {
            name: "on"
            PropertyChanges {
                target: trg
                source: "qrc:/1.png"
            }
        },
        State {
            name: "off"
            PropertyChanges {
                target: trg
                source: "qrc:/2.png"
            }
        }
    ]
}

MouseArea {
    property bool isOn: false
    anchors.fill: parent

    onClicked: {
        if (isOn) {
            trg.state = "on";
        }
        else {
            trg.state = "off";
        }
        isOn = !isOn;
    }
}

不幸的是,这是一个已经在Qt5.9.2快照(我以前使用的是5.9.1版本)中修复的bug(以及其他一些bug)。

是的,缓存系统/gs在QML中很糟糕。