标题:QML动态创建对象出现内存泄漏
作者:彩阳
日期:2014-05-30 14:16
内容:
为了清楚地阐述我的问题,我创建了一个小小的例子程序。这个程序是基于Qt5.3构建的,是一个QtQuick工程,大家可以下载实测一下。
我使用Qt.createComponent()和Qt.createObject()来动态创建对象,在这个对象中我加入了粒子系统,可以让其运行也可以不让其运行。结果发现即使使用someObject.destory()方法也无法让系统将该对象回收,结果导致严重的内存泄漏。
// TestObject.qml
import QtQuick 2.0
import QtQuick.Particles 2.0
Rectangle
{
id: root
width: 32
height: 32
color: "#" + ( Math.floor( Math.random( ) * 0xFFFFFFFF ) ).toString( 16 )
x: Math.random( ) * parent.width
y: Math.random( ) * parent.height
NumberAnimation on x { from: parent.width / 2; to: x }
NumberAnimation on y { from: parent.height / 2; to: y }
Timer
{
id: internalTimer
interval: 2000
repeat: false
onTriggered: root.destroy( )
}
ParticleSystem
{
id: system
anchors.centerIn: parent
running: root.parent.useParticle
ImageParticle
{
source: "qrc:///particleresources/star.png"
colorVariation: 0.2
}
Emitter
&nbs ..
#1 [kaixin921001 06-18 16:28]
同问,也遇到这个问题。
#2 [junan 08-07 17:42]
QML动态创建内存泄露好像无解啊。纠结中。。。。。
#3 [jakes 10-07 13:49]
只增无减,感觉好无奈。
#4 [jackyu 05-18 17:37]
不知道现在解决没?