2016-07-05 7 views
0

私はQNetworkReply使用して、単純なGETリクエストをやろうとしたが呼び出されるの取得することはありません)(終了しています、ここで私は起動時に出力をチェックすると、私のコードの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"; 

} 

であるI

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:qttest.cppにQNetworkReplyHttpImpl :: finished(QNetworkReply * reply)というシグナルはありません:18 – QtTest

+0

正しい形式はです。 connect(manager、SIGNAL(finished(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

はい。 – QtTest

関連する問題