C++ Qt错误-错误:不是信号或插槽声明
我正在尝试在QT中创建多线程服务器。然而,我不断地遇到这个恼人的错误: 错误:不是信号或插槽声明(第21行) 这是我的密码: mythread.hC++ Qt错误-错误:不是信号或插槽声明,c++,qt,qthread,qtcpsocket,C++,Qt,Qthread,Qtcpsocket,我正在尝试在QT中创建多线程服务器。然而,我不断地遇到这个恼人的错误: 错误:不是信号或插槽声明(第21行) 这是我的密码: mythread.h #ifndef MYTHREAD_H #define MYTHREAD_H #include <QThread> #include <QTcpSocket> class MyThread : public QThread { Q_OBJECT public: explicit MyThread(int ID
#ifndef MYTHREAD_H
#define MYTHREAD_H
#include <QThread>
#include <QTcpSocket>
class MyThread : public QThread
{
Q_OBJECT
public:
explicit MyThread(int ID, QObject *parent = 0);
void run();
signals:
void error(QTcpSocket::SocketError socketerror);
public slots:
void readyRead();
void disconnected();
public slots:
QTcpSocket *socket;
int socketDescriptor; //Socket ID Number
};
#endif // MYTHREAD_H
\ifndef MYTHREAD\u H
#定义MYTHREAD_H
#包括
#包括
类MyThread:publicqthread
{
Q_对象
公众:
显式MyThread(int-ID,QObject*parent=0);
无效运行();
信号:
无效错误(QTcpSocket::SocketError SocketError);
公众时段:
void readyRead();
无效断开连接();
公众时段:
QTcpSocket*插座;
int socketDescriptor;//套接字ID号
};
#endif//MYTHREAD\H
错误消息准确地告诉您问题所在。您将成员变量声明为插槽,但它们不是。我将按如下方式更改您的课程:
class MyThread : public QThread
{
Q_OBJECT
[..]
private: // or public:
QTcpSocket *socket;
int socketDescriptor;
};
您似乎没有正确地将Qt与线程一起使用。为什么要继承QThread而不是将任务移动到一个库存QThread?此外,您没有显示代码的基本部分,如线程管理、连接等。我只是想学习一个教程。声明类成员变量
qtcsocket*socket代码>和intsocketdescriptor
作为公共插槽?为什么?好吧,别学那个教程。忘记它的存在。认真地我还有另一个答案,接得好;这可能是上面同一行的复制/粘贴问题。虽然,这可能不是唯一的问题^^