Obtaining reference to dynamically added QQuickItems
-
Hello Folks;
I'm having trouble figuring out how to obtain a reference to QQuickItems dynamically added to a QQuickItem parent.
Here's the code I'm working with:
@
QQmlComponent graphContainer(m_Engine, QUrl("qrc:/graphContainer.qml"));
QObject graphContainerObject = graphContainer.create();
QQuickItem graphContainerItem = qobject_cast<QQuickItem*>(graphContainerObject);
QQmlComponent newComponent(m_Engine, QUrl("qrc:/NewComponent.qml"));
QObject * qObject = newComponent.create();
QQuickItem theObject = qobject_cast<QQuickItem*>(qObject);
theObject->setProperty("objectName","TheObject");
theObject->setParentItem(graphContainer);
...
QQuickItem theObjectReference = m_GraphContainer->findChild<QQuickItem>("TheObject");// theObjectReference == 0 in this case. How do I obtain a reference to qQI once it's set?
@Thank you,
ST -
Hi,
Few questions:
- What is m_GraphContainer ? Where is it ? As I don't see it in above code.
- Why are you finding it ? As TheObject is the QQuickItem theObject.
May be I didn't understood it correctly. Can you elaborate more ?
-
Well, simple example using *QObject graphContainerObject :
@
...
QObject *graphContainerObject = graphContainer.create();
QObject rect = graphContainerObject->findChild<QObject>("rectangle");
...
@Your QML-Object should have set the objectName property to "rectangle"
@Rectangle {
anchors.fill: parent
objectName: "rectangle"
}@So basically i don't see a problem there expept for that i dont know what the m_GraphContainer is.
For further informations you could check out "this":http://developer.ubuntu.com/api/qml/sdk-1.0/QtQml.qtqml-cppintegration-interactqmlfromcpp/ .
-
Hello Folks;
My apologies for the tardiness of my reply. I also apologize for not providing a complete code example.
is the graphContainer object - I neglected to rename it in my code snippet. Here's the graphContainer.qml file:
@
// QML
import QtQuick 2.2
import GraphUI 1.0Rectangle {
anchors.centerIn: parent
id: graphContainer
objectName: "graphContainer"
height:0;width:0
x:0;y:0
/*
DEBUG
border.color: "green"
border.width: 2
*/
}
@As to onek24's marvelous suggestion, I've attempted such, but with a small difference: the objectName is programmatically set to a GUID. But I'm coming up empty when I:
@
QQuickItem qqEdge = m_GraphContainer->findChild<QQuickItem>(RID);
@The QtCreator debugger shows all children collections to be empty, but my UI displays all edges and nodes correctly.
Thank you again,
ST