2016-07-05 5 views
0

Я пытаюсь сделать простой запрос GET с использованием QNetworkReply но закончил() никогда не называеться, вот мой кодQt 5.6 - QNetworkReply закончил() никогда не называли

QtTest::QtTest(QWidget *parent):QWidget(parent){ 
    ui.setupUi(this); 

    auto network_access_manager = new QNetworkAccessManager(this); 
    auto reply = network_access_manager->get(QNetworkRequest(QUrl("http://www.whatsmyip.org/"))); 
    connect(reply, SIGNAL(finished()), this, SLOT(download_finished())); 


qDebug() << "Started"; 

} 

void QtTest::download_finished() { 

    qDebug() << "Finished"; 

} 

Если я проверяю выход на старте я get

QObject::connect: Cannot connect (null)::aboutToQuit() to QNativeWifiEngine::closeHandle() 

Exception thrown at 0x749040F8 (KernelBase.dll) in QtTest.exe: 0x000006A6: The binding handle is invalid. 
+0

Проверьте этот ответ (http://stackoverflow.com/a/37926541/1329652) на полный пример и посмотрите, работает ли он на вас. Если это так, у вас есть другие проблемы. Если это не так, ваша установка Qt каким-то образом нарушена/повреждена. –

ответ

-1

изменить ваше определение download_finished, чтобы включить ответ;

Сигнал есть; (QNetworkReply * reply), так что

QtTest::download_finished(QNetworkReply *reply) 
    { 
    .... etc 

Обязательно включите параметр в инструкцию connect.

+1

Если я сделаю это, я получу ошибку. QObject :: connect: Нет такого сигнала QNetworkReplyHttpImpl :: finished (QNetworkReply * reply) в qttest.cpp: 18 – QtTest

+0

Правильный формат; connect (менеджер, SIGNAL (завершено (QNetworkReply *)), это, SLOT (replyFinished (QNetworkReply *))); –

+0

, который также не вызван. – QtTest

0

Проверьте, если вы объявляете download_finished() как слот.

class QtTest : public QObject 
{ 
    Q_OBJECT 
public: 
    QtTest(QObject *parent = 0); 

private slots: 
    void download_finished(); 
}; 
+0

Да Это слот. – QtTest

+0

Макрос Q_OBJECT объявлен классу? В моих тестах его работа прекрасна. – rflobao

+0

Да. Я также попробовал 'connect (reply, & QNetworkReply :: finished, this, & QtTest :: download_finished);' – QtTest

Смежные вопросы