专门做鞋子的网站有哪些,谷歌seo零基础教程,自己做网站出口,wordpress黑糖一、模拟一个请求去判断是否有网#xff0c;此处需要加个事件循环#xff0c;实现阻塞等待网络请求的完成。 这是因为Qt的网络模块是基于事件驱动的#xff0c;网络请求的完成是通过信号和槽机制来通知的。在没有事件循环的情况下#xff0c;主线程会立即执行到return语句此处需要加个事件循环实现阻塞等待网络请求的完成。 这是因为Qt的网络模块是基于事件驱动的网络请求的完成是通过信号和槽机制来通知的。在没有事件循环的情况下主线程会立即执行到return语句而此时网络请求可能还没有完成导致无法获取到正确的网络请求结果。 二、最后在加个定时器就算没有等到网络请求返回超时后也会退出事件循环可以避免网络请求长时间阻塞主线程。
bool checkNetwork(int nTimeout 3000)
{QNetworkAccessManager *netManager new QNetworkAccessManager();QNetworkRequest request(QUrl(https://www.baidu.com));QNetworkReply* reply netManager-get(request);QEventLoop loop;QObject::connect(reply, SIGNAL(finished()), loop, SLOT(quit()));QTimer::singleShot(nTimeout, loop, SLOT(quit()));loop.exec(QEventLoop::ExcludeUserInputEvents);return reply-error() QNetworkReply::NoError;
}