我有一个简单的类网络:
private:
QNetworkAccessManager *httpclient;
我在构造函数中创建一个对象并连接信号和槽:
httpclient = new QNetworkAccessManager(this);
connect(httpclient, SIGNAL(finished(QNetworkReply*)), this, SLOT(httpRequestFinished(QNetworkReply*)));
现在我将通过公共方法getPage调用QNetworkAccessManager的get方法:
void Networking::getPage(const QString &uri)
{
QNetworkRequest request;
request.setUrl(uri);
httpclient->get(request);
}
我希望httpRequestFinished被调用,但事实并非如此。我也出于测试目的尝试了它:
void Networking::getPage(const QString &uri)
{
QNetworkRequest request;
request.setUrl(uri);
reply = httpclient->get(request);
connect(reply, SIGNAL(finished()), this, SLOT(httpReplyFinished()));
}
在文件network.h中正确定义了回复:
private:
QNetworkAccessManager *httpclient;
QNetworkReply *reply;
没有改变!但是,如果我在 get-Request 之后访问reply->bytesAvailable(),所有信号都会同时发出!我现在正在搜索几个小时,但不知道我做错了什么。