• 899阅读
  • 3回复

Qt5.9.9中QNetworkConfigurationManager无法列出WLAN相关内容 [复制链接]

上一主题 下一主题
离线songhuirong1
 

只看楼主 倒序阅读 楼主  发表于: 2022-11-17
在Qt5.9.9中,我使用QNetworkConfigurationManager判断电脑中每个网卡是有线网卡,还是无线网卡,发现无法列出WLAN相关的网卡。不知该如何解决,望高手指点。
代码如下:
////////////////////mainwidget.h
  1. #ifndef MAINWIDGET_H
  2. #define MAINWIDGET_H
  3. #include <QNetworkConfigurationManager>
  4. #include <QWidget>
  5. QT_BEGIN_NAMESPACE
  6. namespace Ui { class MainWidget; }
  7. QT_END_NAMESPACE
  8. class MainWidget : public QWidget
  9. {
  10.     Q_OBJECT
  11. public:
  12.     MainWidget(QWidget *parent = nullptr);
  13.     ~MainWidget();
  14. private:
  15.     void init();
  16.     void initConnect();
  17.     void initNetworkConfiguration();
  18.     void onConfigurationAdded(const QNetworkConfiguration &netCfg);
  19.     void onUpdateCompleted();
  20.     Ui::MainWidget *ui;
  21.     QNetworkConfigurationManager m_netCfgMgr;
  22. };
  23. #endif // MAINWIDGET_H

////////////////////mainwidget.cpp
  1. #include "mainwidget.h"
  2. #include "ui_mainwidget.h"
  3. MainWidget::MainWidget(QWidget *parent)
  4.     : QWidget(parent)
  5.     , ui(new Ui::MainWidget)
  6. {
  7.     ui->setupUi(this);
  8.     init();
  9. }
  10. MainWidget::~MainWidget()
  11. {
  12.     delete ui;
  13. }
  14. void MainWidget::init()
  15. {
  16.     initConnect();
  17.     initNetworkConfiguration();
  18. }
  19. void MainWidget::initConnect()
  20. {
  21.     connect(&m_netCfgMgr, &QNetworkConfigurationManager::configurationAdded,
  22.             this, &MainWidget::onConfigurationAdded);
  23.     connect(&m_netCfgMgr, &QNetworkConfigurationManager::updateCompleted,
  24.             this, &MainWidget::onUpdateCompleted);
  25. }
  26. void MainWidget::initNetworkConfiguration()
  27. {
  28.     ui->textBrowser->append(QString{"Start network configuration update."});
  29.     m_netCfgMgr.updateConfigurations();
  30. }
  31. void MainWidget::onConfigurationAdded(const QNetworkConfiguration &netCfg)
  32. {
  33.     QString text;
  34.     text += ("name:\"" + netCfg.name() + "\"\t\t");
  35.     text += ("bearerTypeName:\"" + netCfg.bearerTypeName() + "\"\t\t");
  36.     text += ("bearerType:\"" + QString::number(netCfg.bearerType()) + "\"\n");
  37.     ui->textBrowser->append(text);
  38. }
  39. void MainWidget::onUpdateCompleted()
  40. {
  41.     ui->textBrowser->append(QString{"Network configuration update completed."});
  42.     const auto netCfgs{m_netCfgMgr.allConfigurations(/*static_cast<QNetworkConfiguration::StateFlag>(QNetworkConfiguration::Defined
  43.                                                                                                    | QNetworkConfiguration::Discovered
  44.                                                                                                    | QNetworkConfiguration::Active)*/)};
  45.     for(const auto &netCfg : netCfgs)
  46.     {
  47.         onConfigurationAdded(netCfg);
  48.     }
  49. }


离线songhuirong1

只看该作者 1楼 发表于: 2022-11-17
网上找到一个帖子说是缺少“qnativewifibearer.dll”插件,但是我本地电脑找不到这个插件。
帖子链接:
https://stackoverflow.com/questions/48768295/qnetworkconfigurationmanagerallconfigurations-doesnt-list-wlan
离线liudianwu

只看该作者 2楼 发表于: 2022-11-17
打包发布的时候插件目录plugin下有个bearer目录,在那里面,一起打包就好
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线songhuirong1

只看该作者 3楼 发表于: 2022-11-18
没人回答么
快速回复
限100 字节
 
上一个 下一个