QThread - 没有这样的插槽

CDT*_*CDT 3 c++ qt

定义ComSendCallToScreenThread继承自QThread:

class ComSendCallToScreenThread : public QThread 
{
    private slots:
        void readAnswer();
        void pauseSendingRequests();
};

void ComSendCallToScreenThread::run()
{
    connect(m_senderCom, SIGNAL(readyRead()), this, SLOT(readAnswer()));
    connect(m_senderCom, SIGNAL(readyRead()), this, SLOT(pauseSendingRequests()));
}
Run Code Online (Sandbox Code Playgroud)

在报告运行错误时:

Object::connect: No such slot QThread::readAnswer() in ComSendCallToScreenThread.cpp:47
Object::connect: No such slot QThread::pauseSendingRequests() in ComSendCallToScreenThread.cpp:48
Run Code Online (Sandbox Code Playgroud)

是什么导致连接失败?

mas*_*oud 6

将一个Q_OBJECT类定义之后:

class ComSendCallToScreenThread : public QThread 
{
   Q_OBJECT
Run Code Online (Sandbox Code Playgroud)

Qt4 文档:

包含信号或槽的所有类必须在其声明的顶部提及Q_OBJECT.它们还必须(直接或间接)从QObject派生.