我正在尝试创建一个类
JsonPostSender
(它是 QObject
的子类),以便更轻松地在我的 Qt 项目中提出请求。我希望在请求完成时调用一个函数,从 QJsonObject
解析 QNetworkReply
。但似乎我不能将 connect()
与我的子类一起使用(JsonPostSender.cpp
,第 8 行)。我的代码有什么问题以及如何使其正常工作吗?
我的代码:
JsonPostSender.h
#include <QObject>
#include <qnetworkaccessmanager.h>
#include <qjsonobject.h>
class JsonPostSender : public QObject
{
Q_OBJECT
public:
JsonPostSender(QObject* parent, QUrl url, QJsonObject json, void (*finishFunc)(QJsonObject));
void sendPost();
void onFinish(QNetworkReply* reply);
~JsonPostSender();
private:
QNetworkAccessManager mgr;
QUrl url;
QJsonObject json;
void (*finishFunc)(QJsonObject);
};
JsonPostSender.cpp
#include "JsonPostSender.h"
#include <qnetworkaccessmanager.h>
JsonPostSender::JsonPostSender(QObject *parent, QUrl url, QJsonObject json, void (*finishFunc)(QJsonObject))
: QObject(parent), url(url), json(json), finishFunc(finishFunc)
{
QNetworkAccessManager mgr;
connect(mgr, &QNetworkAccessManager::finished, this, &JsonPostSender::onFinish);
}
void JsonPostSender::sendPost() {
}
void JsonPostSender::onFinish(QNetworkReply *reply) {
}
JsonPostSender::~JsonPostSender()
{}
我收到的错误是:
E0304 there are no instances of the overloaded "JsonPostSender::connect" function corresponding to the argument list
я пришел забрать твою душу 正文必须至少 30 个字符;您输入了 26。 正文必须至少 30 个字符;您输入了 26。 正文必须至少 30 个字符;您输入了 26。 正文必须至少 30 个字符;您输入了 26。