Ich habe eine relativ einfache Klasse, die ein Layout mit ein paar Widgets (Labels, lineEdits, pushButtons) enthält, das als eine Karte angezeigt wird. Alles funktioniert gut, bis ich versuche, Signale und Slots hinzuzufügen. Die Header-Datei unten kompiliert gut mit den auskommentierten Abschnitten wie gezeigt.Qt Kompilierfehler: C2280: Versuch, eine gelöschte Funktion zu referenzieren
#include <QString>
#include <QObject>
#include <QWidget>
class KMLFile //: public QObject
{
//Q_OBJECT
public:
KMLFile();
~KMLFile();
QString m_originalFilename;
QString m_originalPath;
QString m_proposedFilename;
QString m_propsoedPath;
QString m_coords;
QWidget* trackWidget;
void populate(QString originalFilename, QString originalPath, QString proposedFilename, QString coords);
QString getCoords();
int getLength();
//public slots:
//void changeFilename();
};
Wenn die Bits des Codes sind in links, erhalte ich folgende Fehlermeldung:
"C:...\qlist.h:425: error: C2280: 'KMLFile::KMLFile(const KMLFile &)': attempting to reference a deleted function
Ich verwende Qt5.3 und Qt Creator. Ich habe versucht, putzen, qmake ausführen und löschen den Build-Ordner ohne Erfolg. Ich bin ratlos!
Dankbar für jeden Einblick in, wie man das repariert, damit ich fortschreiten kann.
Sie können den Qt Signal-/Slots-Mechanismus nicht verwenden, ohne von QObject zu erben und ohne das Makro Q_OBJECT zu verwenden und Ihren Code über den Meta-Objekt-Compiler "moc" auszuführen. –