0

こんにちは、HTTP GET リクエストを送信し、関数で結果を受信しようとしています。しかし、私はこのエラーが発生しています:

「HttpNetworkRequest::connect(QNetworkAccessManager*&, const char*, RequestFinishFunction&, const char*)」の呼び出しに一致する関数がありません

接続機能はこの HttpNetworkRequest.cpp ファイルにあります

#include "HttpNetworkRequest.hpp"
#include <QObject>
#include <QIODevice>
#include <QDir>

#include <bb/cascades/Application>
#include <bb/cascades/QmlDocument>
#include <bb/cascades/AbstractPane>
#include <bb/cascades/XmlDataModel>
#include <RequestFinishFunction.hpp>
using namespace bb::cascades;

HttpNetworkRequest::HttpNetworkRequest(bb::cascades::Application *app)
: QObject(app)
{
QNetworkRequest networkRequest = QNetworkRequest();
networkRequest.setUrl(QUrl("http://www.blackberry.com"));
RequestFinishFunction req;
QNetworkAccessManager *networkAccessManager = new QNetworkAccessManager;
bool res =        connect(networkAccessManager,SIGNAL(finished(QNetworkReply*)),
    req,SLOT(requestFinished()));
Q_ASSERT(res);
Q_UNUSED(res);
networkAccessManager->get(networkRequest);
}

含まれている RequestFinishFunction.hpp

#ifndef REQUESTFINISHFUNCTION_HPP_
#define REQUESTFINISHFUNCTION_HPP_
#include <bb/cascades/ActivityIndicator>
#include <QObject>
#include <QObject>
class RequestFinishFunction : QObject
{
public slots:
void requestFinished(QNetworkReply* reply);
};
#endif /* REQUESTFINISHFUNCTION_HPP_ */

RequestFinishFunction.cpp ファイルは

#include <bb/cascades/ActivityIndicator>
#include <QObject>
#include <QObject>
#include <RequestFinishFunction.hpp>
void RequestFinishFunction::requestFinished(QNetworkReply* reply)
{
    reply->deleteLater();
}
4

1 に答える 1

2

connect メソッドの構文

bool QObject::connect ( const QObject * 送信者, const char * シグナル, const QObject * 受信者, const char * メソッド, Qt::ConnectionType タイプ = Qt::AutoConnection )

送信者と受信者の両方の参照を渡す必要があります。

受信者の参照を送信しませんでした。これには 2 つのオプションがあります。

1) connect メソッド呼び出しで & 演算子を使用して req の参照を送信する

交換

connect(networkAccessManager,SIGNAL(finished(QNetworkReply*)), req,SLOT(requestFinished()));

connect(networkAccessManager,SIGNAL(finished(QNetworkReply*)), &req,SLOT(requestFinished()));

また

2) req をポインタとして宣言する

交換

RequestFinishFunction req;

RequestFinishFunction *req;

于 2012-12-18T08:29:27.370 に答える