Why does staticMetaObject.className() return the class name of the parent class?

527 Views Asked by At

I have a class 'Default' derived from a class 'Units' and when I do:

Default::staticMetaObject.className())

it returns Units instead of Default. Why is that? How can I fix this?

1

There are 1 best solutions below

0
On BEST ANSWER

Turning my comment into an answer.

This usually happens when you forget to put the macro Q_OBJECT into the derived class.

From the point of view of Qt's meta-type system, that class is then indistinguishable from its parent class (that is, from the nearest parent class which does have Q_OBJECT inside).