QMetaObject::invokeMethod()
时间: 2023-11-04 13:04:32 浏览: 151
QMetaObject::invokeMethod()是Qt框架提供的一个方法,用于在一个对象的线程中调用另一个对象的方法。它的原型如下:
```cpp
bool QMetaObject::invokeMethod(QObject *receiver, const char *member, Qt::ConnectionType connectionType, QGenericReturnArgument returnArgument, QGenericArgument val0 = QGenericArgument(Q_NULLPTR), 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())
```
其中,receiver表示要调用的对象,member表示要调用的方法名,connectionType表示连接的类型,returnArgument表示方法的返回值,val0~val9表示方法的参数。
该方法可以在任何线程中调用,但是被调用的对象必须在调用线程中有一个事件循环,否则方法调用将失败。该方法还支持异步调用,可以通过设置连接类型为Qt::QueuedConnection来实现。
阅读全文