【发布时间】:2013-10-21 19:59:27
【问题描述】:
我知道我可以使用QMetaType 来创建一个不带参数的对象。
另一个可能的选择是使用QMetaObject 并调用newInstance。但我需要从某事中得到QMetaObject。
我尝试使用QMetaType::metaObjectForType,但它总是返回空指针(但QMetaType 能够创建对象)。
QMetaObject const* metaObject = QMetaType::metaObjectForType(id); // return null pointer
QObject* object = (QObject*)QMetaType::create(id); // create the object
QMetaObject const* metaObject = object->metaObject(); // return not-null pointer
更新:
我认为问题是为什么metaObjectForType 对我不起作用。
该类注册了qRegisterMetaType,同时应用了Q_DECLARE_METATYPE和Q_OBJECT。
【问题讨论】: