Search code examples
qtqt-quick

Understanding arguments of QMetaObject :: invokeMethod - QtQuick


From: http://qt-project.org/doc/qt-4.8/qtbinding.html#calling-functions

QMetaObject :: invokeMethod (object, "myQmlFunction", Q_RETURN_ARG(QVariant, returnedValue), Q_ARG(QVariant, msg));

but, the function arguments say:

From: http://qt-project.org/doc/qt-4.8/qmetaobject.html#invokeMethod

bool QMetaObject::invokeMethod ( QObject * obj, const char * member, Qt::ConnectionType type, QGenericReturnArgument ret, QGenericArgument val0 = QGenericArgument( 0 ), QGenericArgument val1 = QGenericArgument(), QGenericArgument val2 = QGenericArgument(), QGenericArgument val3 = QGenericArgument(), QGenericArgument val4 = QGenericArgument(), QGenericArgument val5 = QGenericArgument(), QGenericArgument val6 = QGenericArgument(), QGenericArgument val7 = QGenericArgument(), QGenericArgument val8 = QGenericArgument(), QGenericArgument val9 = QGenericArgument() ) [static]

So, the third argument to this function is:
Qt::ConnectionType

How does Q_RETURN_ARG (QVariant, returnedValue) correspond to Qt::ConnectionType?


Solution

  • look again at the documentation there are multiple overloads of invokeMethod including one for:

    bool QMetaObject::invokeMethod ( QObject * obj, const char * member, 
                   QGenericReturnArgument ret, 
                   QGenericArgument val0 = QGenericArgument( 0 ), 
                   QGenericArgument val1 = QGenericArgument(), 
                   QGenericArgument val2 = QGenericArgument(), 
                   QGenericArgument val3 = QGenericArgument(), 
                   QGenericArgument val4 = QGenericArgument(), 
                   QGenericArgument val5 = QGenericArgument(), 
                   QGenericArgument val6 = QGenericArgument(), 
                   QGenericArgument val7 = QGenericArgument(), 
                   QGenericArgument val8 = QGenericArgument(), 
                   QGenericArgument val9 = QGenericArgument() ) [static]
    

    so the caller doesn't need to specify the connection type and/or care about the return argument