我检查了其他类似的问题并尝试了解决方案,但它们对我不起作用。

我基本上是在尝试使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
}
...

如您所见,该插槽肯定存在,并且在头文件的公共(public)插槽下声明。所以我不知道为什么会这样。我已经尝试清理,运行qmake并重建。

错误消息是:



任何想法?

最佳答案

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

关于c++ - QObject连接功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19886878/

10-11 16:26