请教qt线程中emit问题
大家好,我在qt线程中用emit自定义信号mysignal(),后面连接槽sendmessage(),槽函数始终不会执行。现确定槽函数是没有问题的,请路过的大侠帮忙看看,谢谢!附上部份代码
.h文件:
extern int alerting;
class Thread_Socket : public QThread
{
Q_OBJECT
public:
Thread_Socket();
void run();
private:
QTcpSocket *tcpSocket;
QString message; //存放从服务器接收到的字符串
public slots:
void sendMessage();
void displayError(QAbstractSocket::SocketError);
signals:
void mysignal();
};
.cpp文件:
#include "thread_socket.h"
#include <QDebug>
int alerting = 1;
Thread_Socket::Thread_Socket()
{
}
void Thread_Socket::run()
{
if (alerting < 10)
emit mysignal();
tcpSocket = new QTcpSocket(this);
tcpSocket->abort(); //取消已有的连接
tcpSocket->connectToHost(QHostAddress::LocalHost,6666);
connect(this,SIGNAL(mysignal()),this,SLOT(sendMessage()));
}
void Thread_Socket::sendMessage()
{
qDebug() << "why why why";
char *p = "hello";
tcpSocket->write(p);
}