我有一个遍历Qt插件的元数据的递归函数。从QMetaType获取QMetaObject很简单,但是我找不到让我从QMetaObject获取QMetaType的任何东西。请看下面的例子:
QPluginLoader pluginLoader(pluginPath);
const QMetaObject *pMetaObject = pluginInstance->metaObject();
//how do I get the metatype? in the meantime as I move forward
auto metaMethod = pMetaObject->method(pMetaObject->methodOffset());//QMetaMethod
int returnType = metaMethod.returnType();
auto qMetaType = QMetaType(returnType);//QMetaType for custom class obtained
我的插件的输入类和我的方法返回的其他自定义类都已向qRegisterMetaType()注册。
最佳答案
int id = QMetaType::type(pMetaObject->className());
if (id != QMetaType::UnknownType)
{
QMetaType metaType(id);
...
}