Hi, On 04/11/2010, at 10:26 PM, ext René Hansen wrote:
> I'd like to be able to find child objects in a QML structure and to do > that, I've exposed a new QML Object with qmlRegisterType, which provides > me with: > > QObject *QmlUnitTestHelper::getChildById(QObject *parent, QString name) { > return parent->findChild<QObject *>(name); > } > > And in Qml I have something like this: > > Rectangle { > > QmlUnitTestHelper { > id: quth > } > > Rectangle { > id:outerRect > Rectangle { > id:innerRect > Text { > id:label > text: "Hello World" > } > } > } > } > > Which should enable me to test in something like this manner: > > quth.getChildById(outerRect, "innerRect").label.text == "Hello World" > > However, this doesn't work as expected, so I guess my assuming the QML > id property being the same as a QObjects objectName is faulty. That's correct -- id and objectName are separate. You can explicitly give a QML item an objectName, though, if needed: Rectangle { id: myRect objectName: "theRectangle" } (Bea has just added some great documentation on this, which should hopefully be showing up on the website soon) > How would I go about doing something like this? For the above example, you should be able to test the label's text with: label.text == "Hello World" (within a component, the id space is "flat", rather than qualified) If you need to access the item from outside the component, a property alias (http://doc.qt.nokia.com/4.7/qml-extending-types.html#property-aliases) might help. You could for example add property alias testLabel: label to the top-most Rectangle to make label accessible to the "outside world" via testLabel. >From the class name, it looks like you might be looking at writing autotests >in QML? If so (and If you haven't seen them already), here are a few projects >that might be of interest: * qmlunit (https://github.com/fgrehm/qmlunit) * the Qt3D team's QML unit testing (http://qt.gitorious.org/qt-labs/qt3d/trees/master/tests/auto/qml3d) Regards, Michael _______________________________________________ Qt-qml mailing list Qt-qml@trolltech.com http://lists.trolltech.com/mailman/listinfo/qt-qml