Hallo zusammen,
ich entwickle gerade ein Programm, für das ich die qt Bibliothek verwende. Da ich damit bisher noch nie ernsthaft gearbeitet habe funktioniert natürlich nix. Da ich keine Erfahrungen habe komme ich alleine leider auch nicht weiter.
In dem Projekt sollen verschiedene Klassen ein Signal emitieren, wenn sich bestimmte Daten ändern und eine zentrale Klasse soll das dann (zunächst nur als Terminalausgabe) Darstellen. Dazu die Headerdatei
und die QuelldateiCode:#ifndef DARSTELLUNG_H_
#define DARSTELLUNG_H_
#include <iostream>
class Darstellung{
Q_OBJECT
private:
int *status;
void out();
public:
Darstellung();
public slot:
void setStatus(int, int);
};
#endif
versuche ich das nun überCode:#include "Darstellung.h"
Darstellung::Darstellung() {
status = new int[4];
for(int i=0; i<5; i++){
status[i] = 0;
}
}
void Darstellung::setStatus(int n, int s){
status[n] = s;
out();
}
void Darstellung::out(){
for(int i=0; i<5; i++){
std::cout << status[i] << " ";
}
std::cout << std::endl;
}
zu kompilieren kommen die folgenden Fehlermeldungen:Code:qmake -project
qmake
make
Natürlich bezeichnet slot keinen Typ, aber diese Schlüsselwörter sollten doch eigentlich durch den moc ersetzt werden, dafür setzt man doch extra das Q_OBJECT? Muss man den moc irgendwie speziell aufrufen? So wie ich das verstanden hatte reichen die 3 Zeilen.Code:g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o Darstellung.o Darstellung.cpp
In file included from Darstellung.cpp:8:0:
Darstellung.h:20:8: Fehler: expected »:« before »slot«
Darstellung.h:20:8: Fehler: »slot« bezeichnet keinen Typ
Darstellung.cpp:17:41: Fehler: keine Elementfunktion »void Darstellung::setStatus(int, int)« in Klasse »Darstellung« deklariert
make: *** [Darstellung.o] Fehler 1
Mit freundlichem Gruß
Javatar