image - Qml图片和内存释放

标签 image qt memory qml qt-quick

我注意到分配给 Image 的内存没有释放。

在没有启动应用程序的情况下,系统具有以下内存值:423MiB/1985MiB(通过 nvidia-smi 检查)

当我启动应用程序并多次单击(更改图像源)时,使用的内存在增加(单击一次增加 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;
    }
}

最佳答案

不幸的是,这是一个错误(QTBUG-61754 和更多)已经在 qt 5.9.2 快照中修复(我以前使用 5.9.1 版本)。

关于image - Qml图片和内存释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915948/

相关文章:

QT Creator - 如何实现GUI Creator对组件的访问?

c++ - 使用 Qt Creator 在 Windows 中为 Linux 构建 Qt 应用程序

c++ - 在 Qt 中创建 COM 对象

"char *"和 "char * = new char[]"之间的 C++ 区别

JavaFX 销毁还是重用按钮?

javascript - Javascript-单击时更改图片并更改音频

python - 打开图像? Python

javascript - 黑色不透明叠加层使图像尺寸增加

html - 将图像从 XML 插入到 XSL 文档

java - 垃圾收集器如何快速知道哪些对象不再有对它们的引用?