对于信号:
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/