Hi All, I'm having trouble with assigning qml item properties in C++. The type is declared in qml as a component, and is declared in another qml component as an item property.
i.e. TypeA.qml QtObject { property string myString } TypeB.qml QtObject{ property TypeA myTypeA } I'm creating each of the objects on the c++ side using something like: QString qml("import Qt 4.7\nTypeB{}\n"); QDeclarativeComponent component(engine); component.setData(qml.toLatin1(), QUrl("")); QObject *myTypeB = component.create(); And then wrapping the property using: QDeclarativeProperty typeAProperty(myTypeB, "myTypeA", engine); .. where typeAProperty.isValid() returns true, and if I do a QDeclarativeProperty::read() I get a QVariant with a type of QVariant::QObject* which casts to QObject* correctly. However when I write the value, using : ... QObject *myTypeA = component.create() typeAProperty.write(QVariant::fromValue(myTypeA)); .. it returns false which I guess means the type is incorrect according to the metatype, even though the QVariant's type is also QVariant::QObject*. I know the object creation is working fine, as I can assign the object in the root context to a context property, set string and int properties and they are binding properly on the qml side. I couldn't find any examples in the documentation that specifically dealt with item properties. I've managed to get lists to work in a similar manner using QDeclarativeListReference, but the convention for item properties seems subtly different. Regards, Simon. _______________________________________________ Qt-qml mailing list Qt-qml@trolltech.com http://lists.trolltech.com/mailman/listinfo/qt-qml