Image Qml映像和内存释放
我注意到分配给映像的内存没有释放 如果未启动应用程序,系统具有以下内存值:423MiB/1985MiB(通过nvidia smi检查) 当我启动应用程序并多次单击(更改图像源)时,使用的内存正在增加(1次单击可增加4-5MB):1950MiB/1985MiB 将“缓存”属性设置为false没有帮助 我找到了解决方法:更改图像可见性,但在这种情况下需要很多图像项 是否存在使用“源”属性不“可见”的解决方案 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
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中很糟糕。