I`m arbeiten die härteste Zeit mit einer Klasse + Unterklasse mit Q_OBJECT bei der Erstellung:Qt C++ Klasse + Unterklasse mit Q_OBJECT Passt nicht
Ich habe eine Klasse Geometrie und einige Klassen Geo_1PF, Geo_2, .. die von Geometrie erben. Ich habe diese Klassen erstellt und alles hat gut funktioniert. Jetzt möchte ich QMetaType verwenden und dafür muss ich Q_Object deklarieren. Sobald ich Q_OBJECT/Q_DECLARE_METATYPE verwendet habe, begannen meine Probleme.
erhalte ich die Fehler „undefined reference Vtable ...“ Ich habe versucht, alle .o und alle moc_ CPP vor dem Kompilieren wieder zu löschen. Ich fügte hinzu QT + = Kern in der * .pro-Datei, aber ich war nicht erfolgreich. Q_OBJECT/Q_DECLARE_METATYPE in setzen sowohl die Eltern und die cild Klasse
- Muss ich?
- Warum bekomme ich diesen Fehler?
Kann mir bitte jemand helfen?
Dies ist mein Code:
geometry.h:
#ifndef GEOMETRY_H
#define GEOMETRY_H
#include <QMetaType>
#include <QWidget>
#include <QObject>
#include <QDebug>
class Geometry
{
// Q_OBJECT
protected:
public:
Geometry();
virtual ~Geometry(void) {}
virtual void write_LNE();
//Q_DECLARE_METATYPE(Geometry);
#endif // GEOMETRY_H
-
geometry.cpp:
#include "geometry.h"
Geometry::Geometry()
{ qDebug() << "Constructor: hier ist Geometry"; }
void Geometry::Haupt()
{ qDebug() << " Das hier ist die Haupt von Geometry ....." ; }
void Geometry::write_LNE(){}
-
Geo_1PF.h:
#ifndef GEO_1PF_H
#define GEO_1PF_H
#include "geometry.h"
class Geo_1PF : public Geometry
{
// Q_OBJECT
public:
Geo_1PF();
~Geo_1PF() {}
virtual void write_LNE();
};
//Q_DECLARE_METATYPE(Geo_1PF);
#endif // GEO_1PF_H
Geo_1PF.cpp: #include "Geo_1PF.h"
Geo_1PF::Geo_1PF() { }