Ich habe zwei Klassen und will Meta-Informationen von der Unterklasse erhalten:Aufruf virtuelle Methode auf Unterklasse zurückgibt Super Daten
class DataObject : public QObject {
Q_OBJECT
...
public:
virtual void meta() {
const QMetaObject *mo = QObject::metaObject();
for (int i = 0; i < mo->propertyCount(); i++) {
qDebug() << mo->property(i).name() << mo->property(i).read(this);
}
}
...
}
class User : public DataObject {
Q_OBJECT
Q_PROPERTY(int id MEMBER m_id)
...
}
Als ich Meta rufe auf einem User
Object es gibt nur die Standard-Objekteigenschaft objectName
, nicht die Eigenschaften, die in der Benutzerklasse deklariert sind.
Kann ich die Metainformationen der Unterklassen irgendwie erhalten, ohne die Methode in jedem einzelnen von Hand zu implementieren?