从QMetaObject检索QMetaType

时间:2016-01-26 02:03:41

标签: c++ qt c++11 metadata

我有一个遍历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()。

1 个答案:

答案 0 :(得分:3)

int id = QMetaType::type(pMetaObject->className());
if (id != QMetaType::UnknownType)
{
    QMetaType metaType(id);
    ...
}