> well, the problem is that createTree() does not registered in your QObject-derived class.
but why does it work in the following case then ? QtObject { function createTree() { } } ------- Jean-Michaël Celerier http://www.jcelerier.name On Sun, Oct 7, 2018 at 1:00 PM Vlad Stelmahovsky <vladstelmahov...@gmail.com> wrote: > 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> 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" >> } >> >> 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 >> listInterest@qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest >> >> _______________________________________________ >> Interest mailing list >> 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