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
(gelöst) className() gibt als Name nur "QObject" z
(gelöst) className() gibt als Name nur "QObject" z
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
hast du in der Klasse das
Q_OBJECT
gesetzt
Q_OBJECT
gesetzt
Re: className() gibt als Name nur "QObject" zurück
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 hat geschrieben:Was mache ich denn da falsch?