I created templated QAbstractListModel:
template <class T> class ListModel : public QAbstractListModel
I register ListModel<SomeData> to QML:
qmlRegisterType<ListModel<SomeData>>("x", 1, 0, "SomeDataList");
I use a list in a class as qproperty:
Q_PROPERTY(ListModel<SomeData> *someDataList READ someDataList CONSTANT)
However, when I access it from QML, I get:
QMetaProperty::read: Unable to handle unregistered datatype 'ListModel<SomeData>*' for property 'MyClass::someDataList '
Can you please help me solve the problem. I would like to access templated QAbstractListModel from QML. Thank you.
i believe thats not possible. There might be a high chance that the Q_OBJECT macro is needed at some point, which isn't available for templated classes.
But your warning/error comes from the fact that the type isn't a known meta-type.
So at some point you need to add the following (into a global header?) to register the used types:
And its also good practice to call
qRegisterMetyType<ListModel<SomeData>*>()once at some point.
Add these lines and lets see if thats maybe already enough to get it working.
@raven-worx Thank you, that works.