为啥 staticMetaObject.className() 返回父类的类名?

Posted

技术标签:

【中文标题】为啥 staticMetaObject.className() 返回父类的类名?【英文标题】:Why does staticMetaObject.className() return the class name of the parent class?为什么 staticMetaObject.className() 返回父类的类名? 【发布时间】:2013-03-26 12:44:24 【问题描述】:

我有一个派生自“单位”类的“默认”类,当我这样做时:

Default::staticMetaObject.className())

它返回Units 而不是Default。这是为什么?我该如何解决这个问题?

【问题讨论】:

这通常发生在您忘记将Q_OBJECT 放入派生类时。 谢谢。这确实解决了问题:-) 【参考方案1】:

将我的评论变成答案。

这通常发生在您忘记将宏 Q_OBJECT 放入派生类时。

从 Qt 的元类型系统的角度来看,该类与它的父类无法区分(即,与内部确实有 Q_OBJECT 的最近的父类)。

【讨论】:

以上是关于为啥 staticMetaObject.className() 返回父类的类名?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?

为啥需要softmax函数?为啥不简单归一化?

为啥 g++ 需要 libstdc++.a?为啥不是默认值?

为啥或为啥不在 C++ 中使用 memset? [关闭]

为啥临时变量需要更改数组元素以及为啥需要在最后取消设置?

为啥 CAP 定理中的 RDBMS 分区不能容忍,为啥它可用?