ich habe folgendes Problem:
Ich habe in meinem Programm, in welchem ich eine von QThread abgeleitete Klasse eingefügt habe. Der Thread wird von dem Programm gestartet (nach Klick auf Button), läuft dann in Endlos-Schleife und frägt Daten ab (von einer angeschlossenen Hardware). Der Thread läuft erstmal so lange, bis er vom Programm (auch wieder Button-Signal) beendet wird. Das funktioniert alles wunderbar!
Nun kann der Fall auftreten, dass etwa die Verbindung zur angeschlossenen Hardware abbricht (oder eben andere unerwünschte Zustände). Hierzu liefert die Bibliothek eine passende Methode. Bei jedem Schleifendurchlauf wird die Methode aufgerufen. Ist die Antwort der Methode korrekt (kein Fehlerzustand), wird der eigentliche Code ausgeführt. Wird ein anderer Wert zurückliefern, so soll das Programm innerhalb dessen meine QThread-Instanz läuft, den QThread beenden und die Fehlerbearbeitung durchführen.
Mein Code hierzu sieht wie folgt aus:
CarThread.h
Code: Alles auswählen
class CarThread : public QThread
{
Q_OBJECT
public:
CarThread( QWidget* );
private:
QWidget *parent;
...
signals:
void On_ErrorStatus();
CarThread.cpp
Code: Alles auswählen
CarThread::CarThread( QWidget *parentPointer)
{
parent = parentPointer;
QObject::connect( this, SIGNAL( On_ErrorStatus() ), parent, SLOT( SetConnectionUnready() ) );
}
void CarThread::ReadFromHardware()
{
if( GetStatus( ) == OK )
{
ReadData();
}
else
{
emit On_ErrorStatus();
}
}
Als Fehlermeldung während des Build-Vorgangs erhalte ich: "Error: Class declaration lacks Q_OBJECT macro."
Habe jetzt schon 2 Stunden im Netz gesucht und probiert...leider führt nix zum Ergebnis!
Hat hier irgendwer ne Idee, woran das Problem liegen könnte?
Schmeiss ich den Code für das Signal raus, läufts wunderbar!
MfG und Danke