我有一个遍历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()。
答案 0 :(得分:3)
int id = QMetaType::type(pMetaObject->className());
if (id != QMetaType::UnknownType)
{
QMetaType metaType(id);
...
}