若该文为原创文章,转载请注明出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136276999
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中...(点击传送门)
Qt开发专栏:项目实战(点击传送门)
需求
使用Qt软件开发一个检测网卡的功能。
兼容windows、linux,国产麒麟系统(同为linux)
Demo
windows上运行:

国产麒麟操作上运行:


windows运行包下载地址
CSDNf粉丝0积分下载:https://download.csdn.net/download/qq21497936/88874612
QQ群:博客首页扫码进入QQ技术群,点击"文件 "搜索"testNetworkCard",群内与博文同步更新)
功能描述 v1.1.0
- windows上实时检测出网卡通断(插拔,失联等情况)
- linux上实时检测出网卡通断(插拔,失联等情况)
- 国产银河麒麟操作系统上实时检测出网卡通断(插拔,失联等情况)
模块化部署

关键源码
cpp
#if 1
QNetworkInterface networkInterface = QNetworkInterface::interfaceFromName(_networkDevName);
LOG << networkInterface << networkInterface.name();
if( networkInterface.flags().testFlag(QNetworkInterface::IsUp)
&& networkInterface.flags().testFlag(QNetworkInterface::IsRunning)
&& !networkInterface.flags().testFlag(QNetworkInterface::IsLoopBack))
{
// 连接状态改变,需要抛出改变状态信息
if(!_connected)
{
LOG << "emit signal_connectedChanged"
<< _networkName
<< _connected
<< "change to" << true;
_connected = true;
emit signal_networkCardConnectedChanged(_connected);
}
}else{
// 连接状态改变,需要抛出改变状态信息
if(_connected)
{
LOG << "emit signal_connectedChanged"
<< _networkName
<< _connected
<< "change to" << false;
_connected = false;
emit signal_networkCardConnectedChanged(_connected);
}
}
#endif
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136276999