我检查了其他类似的问题,并尝试了他们的解决方案,但他们不适合我.
我基本上试图创建一个只发出帖子请求的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文件中.