model gets not assigned to custom class



  • Hi guys,

    I have a custom component which implements a Q_PROPERTY like this:

    class NChartPlotter : public QQuickFramebufferObject
    {
        Q_OBJECT
        Q_PROPERTY(NChartAbstractDataModel* dataModel READ dataModel WRITE setDataModel)
    

    In main.cpp I create an instance of a NChartAbstractDataModel derived class and I set it as a contextProperty:

    NTestChartDataModel dm; //NTestChartDataModel is a subclass of NChartAbstractDataModel
    engine.rootContext()->setContextProperty("charDataModel", &dm);
    

    in QML I want to assign my model to a my view-component:

            ChartPlot {
                id: renderer
                anchors.fill: parent
                textureFollowsItemSize: true
                dataModel: charDataModel
            }
    

    PROBLEM:
    setDataModel gets never called.

    What am I doing wrong here?
    btw. this is my first qml-application.

    CU
    mts



  • ok, maybe I should have looked in the application-output earlier...
    -> "Unable to assign NTestChartDataModel to [unknown property type]"

    I do I let qml know about this class?

    EDIT:
    ok, I found that I have to use qRegisterMetaType to register my classType but I don't understand why I have to implement a copy-constructor?!
    Anyway, even if I implement a copy constructor to make the usage of qRegisterMetaType possible, I still get the "unknown property type" error on runtime.



  • You need to use qmlRegisterType, not just qRegisterMetaType, for any type which you expose to QML in such a way that you expect property resolution (including method invocation) to occur on an instance of that type.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.