well, the problem is that createTree() does not registered in your QObject-derived class. its a part of instantiated object ant metasystem have no clue about it

I think you need to register it 1st in header somehow

On 10/7/18 12:41 PM, Jean-Michaël Celerier wrote:
Yes, that's what I'm doing, but I 'm typing the code in the mail - sorry for the typo.

Here's something even more fundamental : the following prints all the functions if my type is a QtObject descendant, but it does not if my type is a MyLib.MyObject descendant

    for(int i = 0; i < obj->metaObject()->methodCount(); i++) {
      qDebug() << obj->metaObject()->method(i).name();
    }


-------
Jean-Michaël Celerier
http://www.jcelerier.name


On Sun, Oct 7, 2018 at 12:39 PM Vlad Stelmahovsky <vladstelmahov...@gmail.com <mailto:vladstelmahov...@gmail.com>> wrote:

    QMetaMethod::invokeMethod(obj, "createTree");

    On 10/7/18 12:34 PM, Jean-Michaël Celerier wrote:
    Hello,
    I have the following code :

    Foo.qml :

        MyLib.MyObject {
          function createTree() { /* stuff */ }
          property string host: "ws://whatever.com <http://whatever.com>"
        }

    cpp :

        namespace lib {
          class MyObject : public QObject { Q_OBJECT };
        }
        ...
        QQmlComponent c(engine);
        c.setData("content of Foo.qml", QUrl());

        auto obj = c.createObject();
        QString host = QQmlProperty(obj, "host").read();
        QMetaMethod::invokeMethod("createTree");

    Reading the "host" property works fine so the QML object is
    correctly instantiated. But the invokeMethod call gives me a
    warning :

        QMetaObject::invokeMethod: No such method
    'lib::MyObject::createTree()'

    The weird thing being: it works fine if I replace MyLib.MyObject
    with QtObject on the QML side.
    Of course I want to use some additional methods present in
    MyObject so this is not a solution.

    Anyone knows what is going on here ?

    Thanks,
    Jean-Michaël Celerier





    -------
    Jean-Michaël Celerier
    http://www.jcelerier.name

    _______________________________________________
    Interest mailing list
    Interest@qt-project.org  <mailto:Interest@qt-project.org>
    http://lists.qt-project.org/mailman/listinfo/interest
    _______________________________________________
    Interest mailing list
    Interest@qt-project.org <mailto:Interest@qt-project.org>
    http://lists.qt-project.org/mailman/listinfo/interest

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to