c++ - QNetworkReply::error 信号什么时候会跟着一个 finish() 信号?

标签 c++ qt

对于信号:

QNetworkReply::error(QNetworkReply::NetworkError code)

Qt 的文档说:

This signal is emitted when the reply detects an error in processing. The finished() signal will probably follow, indicating that the connection is over.

具体来说,finished()信号什么时候发出,什么时候不发出?

最佳答案

When will QNetworkReply::error signal followed by a finished() signal? To be specific, when will the finished() signal be emitted and when not?

信号finished()在请求由于数据传输完成或传输过程中发生错误而完成时发出。如果发生错误,信号 error() 会在 finished() 之前发生。在实践中,我们可以处理“错误”和“传输成功”的finished()

举例说明:

// connect 'finished' signal with consumer
connect(&s_networkAccessManager, SIGNAL(finished(QNetworkReply*)),
        this, SLOT(requestFinished(QNetworkReply*)));



void MyClass::requestFinished(QNetworkReply* pReply)
{
    if ( pReply )
    {
         if (pReply->error() == QNetworkReply::NoError)
             consumeData(pReply)
         else
             errorHandler(pReply->error(), pReply->errorString());
    }
}

关于c++ - QNetworkReply::error 信号什么时候会跟着一个 finish() 信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37441032/

相关文章:

c++ - 无法打开套接字。由 小码哥发布于

c++ - 自定义类上的 static_cast 导致复制分配失败

c++ - 如何在多行上编写 QString?

c++ - 为什么客户端无法连接到服务器? Qt

c++ - 在不调用 read() 的情况下确定管道的大小

c++ - 在 C++14 中使用 auto 实现非类型模板参数

c++ - 动态文字大小QLabel

c++ - 使用 MinGW 构建 ActiveQt (COM) 应用程序

c++ - 使用Qt将所有数据库操作放在一个特定的线程中