Qt5:connect() 不适用于自定义子类

问题描述 投票:0回答:1

我正在尝试创建一个类

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

c++ qt networking subclass qobject
1个回答
0
投票

я пришел забрать твою душу 正文必须至少 30 个字符;您输入了 26。 正文必须至少 30 个字符;您输入了 26。 正文必须至少 30 个字符;您输入了 26。 正文必须至少 30 个字符;您输入了 26。

© www.soinside.com 2019 - 2024. All rights reserved.