(gelöst) className() gibt als Name nur "QObject" z

Alles rund um die Programmierung mit Qt
Antworten
Espresso
Beiträge: 49
Registriert: 10. September 2009 13:55

(gelöst) className() gibt als Name nur "QObject" z

Beitrag von Espresso »

Hallo,

ich habe ein paar Klassen, die voneinander abgeleitet sind,

class CAbstractDBAccess : public QObject {}

class CRecipeBaseClass: public CAbstractDBAccess {}

class CRecipe : public CRecipeBaseClass {}

und wenn ich auf den className von CRecipe zugreifen möchte, bekomme ich nur "QObject"

QString str = cRecipe.metaObject()->className();
str ist hierbei "QObject"

erwartet hätte ich "CRecipe" als className

Was mache ich denn da falsch?
den className muss doch das System selbst ermitteln,

Danke für Tipps,

Gruß Tom
Zuletzt geändert von Espresso am 8. März 2011 13:49, insgesamt 1-mal geändert.
softwaremaker
Beiträge: 149
Registriert: 1. April 2009 19:25

Q_OBJECT

Beitrag von softwaremaker »

hast du in der Klasse das
Q_OBJECT
gesetzt
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: className() gibt als Name nur "QObject" zurück

Beitrag von franzf »

Espresso hat geschrieben:Was mache ich denn da falsch?
Du unterschlägst das Q_OBJECT. Das ist entscheidend für den moc (Meta Object Compiler), der auch dafür sorgt, dass eben nicht der className der BaseClass zurück gegeben wird, sondern der deiner abgeleiteten Klasse.
Espresso
Beiträge: 49
Registriert: 10. September 2009 13:55

Beitrag von Espresso »

das war es,
in jeder Klasse, von der man Meta-Infos benötigt muss
Q_Object enthalten sein.

class CRecipe : public CRecipeBaseClass
{
Q_OBJECT
....


Danke euch,

Gruß Tom
Antworten