我检查了其他类似的问题并尝试了解决方案,但它们对我不起作用。
我基本上是在尝试使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/