嗨,我正在尝试发送一个HTTP请求,并使用函数接收结果。但是我发现了一个错误:
对于调用'HttpNetworkRequest::connect(QNetworkAccessManager*&,const *、RequestFinishFunction&、const *)没有匹配函数
连接函数位于此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();
}发布于 2012-12-18 08:29:27
连接方法语法
bool QObject::connect ( const QObject *发件人,const char * signal,const QObject *接收器,const char *方法,Qt::ConnectionType = Qt::AutoConnection )
我们必须传递发送方和接收方的引用。
你没有发送收信人的推荐信。您有两个选择可以这样做。
1)在连接方法调用中使用&操作符发送req的引用
替换
连接(networkAccessManager,信号(完成(QNetworkReply*)),req,时隙(requestFinished();
使用
连接(networkAccessManager,信号(完成(QNetworkReply*)),&req,时隙(requestFinished();
或
2)将req声明为指针。
替换
RequestFinishFunction req;
使用
RequestFinishFunction *req;
https://stackoverflow.com/questions/13928326
复制相似问题