2017-08-28 451 views
3

我注意到分配给Image的内存未被释放。Qml图像和内存释放

在不启动应用程序的系统具有以下存储器值:423MiB/1985MiB(经由NVIDIA-SMI选中)

当我启动应用程序并点击(改变图像源)几次使用存储器正在增加(1点击添加4-5MB):1950MiB/1985MiB

将“cache”属性设置为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; 
    } 
} 
+1

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

回答

2

不幸的是,这是一个错误(QTBUG-61754和一些更多)已经被固定在QT 5.9.2快照(我用5.9.1版本)。