【发布时间】:2016-05-25 15:04:48
【问题描述】:
对于信号:
QNetworkReply::error(QNetworkReply::NetworkError code)
Qt的文档说:
当回复检测到处理错误时发出此信号。 完成()信号可能会跟随,表明 连接结束。
具体来说,finished() 信号什么时候发出,什么时候不发出?
【问题讨论】:
-
This 可能会回答您的问题。
对于信号:
QNetworkReply::error(QNetworkReply::NetworkError code)
Qt的文档说:
当回复检测到处理错误时发出此信号。 完成()信号可能会跟随,表明 连接结束。
具体来说,finished() 信号什么时候发出,什么时候不发出?
【问题讨论】:
QNetworkReply::error 信号何时会跟随finished() 信号? 具体来说,finished() 信号什么时候发出,什么时候发出 不是吗?
信号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());
}
}
【讨论】: