Obtaining reference to dynamically added QQuickItems
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);
QQuickItem theObjectReference = m_GraphContainer->findChild<QQuickItem>("TheObject");
// theObjectReference == 0 in this case. How do I obtain a reference to qQI once it's set?
- 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"
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/ .
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:
import QtQuick 2.2
import GraphUI 1.0
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,