C++ 将qnetworkaccessmanager连接到插槽
现在我有了这个代码: 请求者C++ 将qnetworkaccessmanager连接到插槽,c++,qt,qtcore,qt-signals,qtnetwork,C++,Qt,Qtcore,Qt Signals,Qtnetwork,现在我有了这个代码: 请求者 #ifndef REQUESTER_H #define REQUESTER_H #include <QtNetwork/QNetworkAccessManager> #include <QtNetwork/QNetworkReply> #include <QtCore/QtCore> #include <QVector> #include <QObject> class Requester { Q_OB
#ifndef REQUESTER_H
#define REQUESTER_H
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
#include <QtCore/QtCore>
#include <QVector>
#include <QObject>
class Requester
{
Q_OBJECT
public:
Requester();
~Requester();
QString get_last_reply();
void send_request();
private:
QNetworkAccessManager *manager;
QVector<QString> replies;
public slots:
void get_reply(QNetworkReply *reply);
};
#endif // REQUESTER_H
这个错误是:
no matching function for call to 'QObject::connect(QNetworkReply*&, const char*, Requester* const, const char*)'
怎么了?我尝试使用just connect而不是QObject::connect,但出现了一个错误,即无法将QNetworkAccessmanager转换为socket 问题在于您没有继承QObject,因此很自然:您无法在该类中处理插槽 你应该这样写: 请求者 requester.cpp
此外,在这种情况下,在堆上构造与堆栈相反的
QNetworkAccessManager
几乎毫无意义。您只需要一个QNetworkAccessManager m_networkAccessManager;没有分配、构造和删除的成员,但这只是未来的附加信息。Hm。。信号“已完成”未发送。@LongSmith:您解决了信号未发送的问题了吗?
no matching function for call to 'QObject::connect(QNetworkReply*&, const char*, Requester* const, const char*)'
class Requester : public QObject
{
Q_OBJECT
public:
explicit Requester(QObject *parent);
...
#include "requester.h"
Requester::Requester(QObject *p)
: QObject(p)
, manager(new QNetworkAccessManager)
{
}
...