Interesting bug.
I didn't study the example, but assuming you verified it indeed happens, you
can go for a workaround of creating a service object that would command
creation/destruction and keep a register of currently alive objects.
Cheers,
Artem
On Aug 19, 2011, at 8:50 AM, Kimble Young wrote:
> Hi,
>
> I am trying to create instances of objects using Qt.createQmlObject and then
> from the same function destroy the object doing the creation. When I do this
> the objects seem to remain but all their javascript functions cease to work.
> If the parent is not destroyed everything works as normal. I am specifying a
> parent in the call to createQmlObject that is not destroyed so I am confused
> as to why the objects cease to function normally.
>
> I've included an example down the bottom, main.qml is the qml to run.
>
> In this example you would expect to be able to able to click the red box,
> have it make a new red box and that new red box is then able to be clicked
> again and a new one made and old one destroyed and so on. In fact only the
> first red box reacts to clicks and the dynamically created one doesn't.
>
> So my question is why does this happen and how could I get around it?
>
> I have a need to be able to create new objects and destroy the old one
> dynamically. I also can't use createComponent/createObject as there are other
> issues with that approach.
>
> Thanks in advance,
>
> Kimble Young
>
> main.qml
>
> import QtQuick 1.0
> Rectangle {
> id: mainRectangle
> width: 360
> height: 360
>
>
> Component.onCompleted: {
> Qt.createQmlObject("import QtQuick 1.0; BoxThing { x:" +
> Math.random() * 360 + "; y:" + Math.random() * 360 + "}", mainRectangle );
> }
> }
>
>
>
> BoxThing.qml
>
> import QtQuick 1.0
> Rectangle {
> id: boxThing
> width: 50
> height: 50
> color: "red"
> MouseArea {
> anchors.fill: parent
> onClicked: {
> console.log("I have been clicked");
> Qt.createQmlObject("import QtQuick 1.0; BoxThing { x:" +
> Math.random() * 360 + "; y:" + Math.random() * 360 + "}", mainRectangle);
> boxThing.destroy();
> }
> }
> }
>
>
>
> _______________________________________________
> Qt-qml mailing list
> [email protected]
> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
_______________________________________________
Qt-qml mailing list
[email protected]
http://lists.qt.nokia.com/mailman/listinfo/qt-qml