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