我需要获取 QMetaObject 来动态创建对象实例。
如果我知道该对象,那么 QObject::metaObject() 就是我所需要的。如果我知道该类,那么我可以使用 QObject::staticMetaObject 变量。但是,如果我只知道类名作为字符串值,我应该使用什么?
你要求一个QMetaObject
,但说这是为了创作目的。如果这就是你所要做的一切Q元类型 http://doc.qt.nokia.com/latest/qmetatype.html可能正是您所需要的。你必须用它注册你的类型,但我很确定 QT 没有一个主列表QMetaObject
默认情况下,它只是浮动的,因此无论您做什么,这样的注册都是必要的。
QMetaType::Type id = QMetaType::type("ClassName");
if(id == 0)
throw something_or_whatever;
ClassName* p = (ClassName*)QMetaType::construct(id);
//act on p
QMetaType::destroy(id, p);
粗略浏览一下文档并不清楚内存如何p
已分配,但我假设destroy
照顾那个?使用风险自负。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)