Слот Qt C ++ не вызывается при отправке сигнала

После отладки я уверен, что слот replyFinish () не вызывается, когда я вызываю this-> getNetReply (). Это мои файлы, в функции main () я называю getNetReply следующим образом: Сеть a; a.getNetReply ();
Я добавил QT + = сеть в мой qmake.
Пожалуйста, помогите мне. Большое спасибо.

мой файл network.cpp

#include "networking.h"#include <QUrl>
#include <QNetworkRequest>

// constructor

void Networking::getNetReply(){
QNetworkAccessManager *man  = new QNetworkAccessManager(this);
QObject::connect(man, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
qDebug() << "connected";
QNetworkRequest req;
req.setUrl(QUrl("http://www.google.com"));
man->get(req);

}
// this method not called
void Networking::replyFinished(QNetworkReply *reply){
QByteArray data = reply->readAll();
QString str = QString(data);
this->netRep = str;
code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
}

мой файл заголовка network.h:

#ifndef NETWORKING_H
#define NETWORKING_H

#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkReply>

class Networking : public QObject
{
Q_OBJECT
public:
QString netRep;
int code;
explicit Networking(QObject *parent = 0);
void getNetReply();

public slots:
void replyFinished(QNetworkReply*);

};

#endif // NETWORKING_H

0

Решение

Функция get () возвращает объект QNetworkReply. Подключитесь к сигналу ошибки этого объекта, и он сообщит вам, если произошла ошибка (и какая).

0

Другие решения


По вопросам рекламы [email protected]