Ableitung Qthread will nicht so wie ich
Verfasst: 9. Oktober 2008 12:56
Hallo Leute,
habe einen Workersthread von QThread abgeleitet, allerdings bekomme ich kein connect hin!
Das connect erfolgt in der Methode init() und dort bekomme ich folgende Meldungen: Object::connect: No such slot QThread::slot_socketError(QAbstractSocket::SocketError)
Object::connect: No such slot QThread::slot_newMsgReceived()
Ich frage mich warum er über "QThread" und nich über "workerThread" connecten möchte, das "this" scheint Probleme!
Kann mir jemand helfen?
Danke und Gruß
hier der Header:
class workerThread:public QThread
{
public:
workerThread();
~workerThread();
void init();
protected:
void run();
protected:
QTcpSocket* tcpSocket;
private:
void connectToServer();
public slots:
void slot_bytesWritten(qint64);
void slot_newMsgReceived();
void slot_socketError(QAbstractSocket::SocketError error );
};
Methode init:
/*!
\fn workerThread::init()
*/
void workerThread::init()
{
tcpSocket = new QTcpSocket ( );
QString tmpAddresse = configService::getInstance()->getServerAddress();
int tmpPort = configService::getInstance()->getServerPort();
tcpSocket->connectToHost ( tmpAddresse,tmpPort );
connect ( tcpSocket, SIGNAL ( error ( QAbstractSocket::SocketError ) ), this, SLOT ( slot_socketError ( QAbstractSocket::SocketError ) ) );
QByteArray block;
connect ( tcpSocket, SIGNAL ( readyRead() ), this, SLOT ( slot_newMsgReceived() ) );
connectToServer();
connect ( tcpSocket, SIGNAL ( bytesWritten ( qint64 ) ), this, SLOT ( slot_bytesWritten ( qint64 ) ) );
}
habe einen Workersthread von QThread abgeleitet, allerdings bekomme ich kein connect hin!
Das connect erfolgt in der Methode init() und dort bekomme ich folgende Meldungen: Object::connect: No such slot QThread::slot_socketError(QAbstractSocket::SocketError)
Object::connect: No such slot QThread::slot_newMsgReceived()
Ich frage mich warum er über "QThread" und nich über "workerThread" connecten möchte, das "this" scheint Probleme!
Kann mir jemand helfen?
Danke und Gruß
hier der Header:
class workerThread:public QThread
{
public:
workerThread();
~workerThread();
void init();
protected:
void run();
protected:
QTcpSocket* tcpSocket;
private:
void connectToServer();
public slots:
void slot_bytesWritten(qint64);
void slot_newMsgReceived();
void slot_socketError(QAbstractSocket::SocketError error );
};
Methode init:
/*!
\fn workerThread::init()
*/
void workerThread::init()
{
tcpSocket = new QTcpSocket ( );
QString tmpAddresse = configService::getInstance()->getServerAddress();
int tmpPort = configService::getInstance()->getServerPort();
tcpSocket->connectToHost ( tmpAddresse,tmpPort );
connect ( tcpSocket, SIGNAL ( error ( QAbstractSocket::SocketError ) ), this, SLOT ( slot_socketError ( QAbstractSocket::SocketError ) ) );
QByteArray block;
connect ( tcpSocket, SIGNAL ( readyRead() ), this, SLOT ( slot_newMsgReceived() ) );
connectToServer();
connect ( tcpSocket, SIGNAL ( bytesWritten ( qint64 ) ), this, SLOT ( slot_bytesWritten ( qint64 ) ) );
}