c – QObject连接功能

我检查了其他类似的问题,并尝试了他们的解决方案,但他们不适合我.

我基本上试图创建一个只发出帖子请求的http客户端.为了做到这一点,我需要将QNetworkManager的完成信号连接到一些回调插槽.

这是我的代码.

h文件:

...
public slots:
   void finishedSlot(QNetworkReply* reply);
private:
    QNetworkAccessManager *network_manager;
...

cpp文件:

...
Class1::Class1(){
    network_manager = new QNetworkAccessManager(this);
    QObject::connect(network_manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(finishedSlot(QNetworkReply *)));
}
...
void Class1::finishedSlot(QNetworkReply* reply)
{
    // some logic with reply
}
...

如您所见,插槽肯定存在,并在头文件的公共插槽下声明.所以我不知道为什么会这样.我已经尝试过干净,运行qmake,然后重建.

错误消息是:

“QObject::connect: No such slot QObject::finishedSlot(QNetworkReply
*)”

任何想法?

解决方法:

您可能忘了使用Q_OBJECT宏.每个实现自己的插槽/信号的类都需要该宏.不要忘记您需要将头文件/源文件添加到.pro文件中.

上一篇:c – 如何在Qt Creator 4.2.0(社区)中包含QtCharts库


下一篇:Qt5 源代码自动跳转