Qt 5.x.x 要判断客户端网络是否联通,一般用如下方法:
#include <QNetworkConfigurationManager>
auto netWorkCheck = new QNetworkConfigurationManager();
auto flag = netWorkCheck->isOnline();
Qt 6.x.x 废弃了 QNetworkConfigurationManager,此时要判断客户端网络是否联通需要使用:QNetworkInformation。
#include <QNetworkInformation>
QNetworkInformation::loadDefaultBackend();
auto info = QNetworkInformation::instance();
info->loadBackendByFeatures(QNetworkInformation::Feature::Reachability);
info->reachability() == QNetworkInformation::Reachability::Online;
这段代码有两点需要注意:
- QNetworkInformation的load方法,只要在应用启动时,执行一次就可以,不用每次检查网络联通状况时都执行一次。
- QNetworkInformation有reachabilityChanged事件,你可以根据这个事件来及时得到网络联通状况变化的消息。