在Qt5.9.9中,我使用QNetworkConfigurationManager判断电脑中每个网卡是有线网卡,还是
无线网卡,发现无法列出WLAN相关的网卡。不知该如何解决,望高手指点。
代码如下:
////////////////////mainwidget.h
- #ifndef MAINWIDGET_H
- #define MAINWIDGET_H
- #include <QNetworkConfigurationManager>
- #include <QWidget>
- QT_BEGIN_NAMESPACE
- namespace Ui { class MainWidget; }
- QT_END_NAMESPACE
- class MainWidget : public QWidget
- {
-     Q_OBJECT
- public:
-     MainWidget(QWidget *parent = nullptr);
-     ~MainWidget();
- private:
-     void init();
-     void initConnect();
-     void initNetworkConfiguration();
-     void onConfigurationAdded(const QNetworkConfiguration &netCfg);
-     void onUpdateCompleted();
-     Ui::MainWidget *ui;
-     QNetworkConfigurationManager m_netCfgMgr;
- };
- #endif // MAINWIDGET_H
////////////////////mainwidget.cpp
- #include "mainwidget.h"
- #include "ui_mainwidget.h"
- MainWidget::MainWidget(QWidget *parent)
-     : QWidget(parent)
-     , ui(new Ui::MainWidget)
- {
-     ui->setupUi(this);
-     init();
- }
- MainWidget::~MainWidget()
- {
-     delete ui;
- }
- void MainWidget::init()
- {
-     initConnect();
-     initNetworkConfiguration();
- }
- void MainWidget::initConnect()
- {
-     connect(&m_netCfgMgr, &QNetworkConfigurationManager::configurationAdded,
-             this, &MainWidget::onConfigurationAdded);
-     connect(&m_netCfgMgr, &QNetworkConfigurationManager::updateCompleted,
-             this, &MainWidget::onUpdateCompleted);
- }
- void MainWidget::initNetworkConfiguration()
- {
-     ui->textBrowser->append(QString{"Start network configuration update."});
-     m_netCfgMgr.updateConfigurations();
- }
- void MainWidget::onConfigurationAdded(const QNetworkConfiguration &netCfg)
- {
-     QString text;
-     text += ("name:\"" + netCfg.name() + "\"\t\t");
-     text += ("bearerTypeName:\"" + netCfg.bearerTypeName() + "\"\t\t");
-     text += ("bearerType:\"" + QString::number(netCfg.bearerType()) + "\"\n");
-     ui->textBrowser->append(text);
- }
- void MainWidget::onUpdateCompleted()
- {
-     ui->textBrowser->append(QString{"Network configuration update completed."});
-     const auto netCfgs{m_netCfgMgr.allConfigurations(/*static_cast<QNetworkConfiguration::StateFlag>(QNetworkConfiguration::Defined
-                                                                                                    | QNetworkConfiguration::Discovered
-                                                                                                    | QNetworkConfiguration::Active)*/)};
-     for(const auto &netCfg : netCfgs)
-     {
-         onConfigurationAdded(netCfg);
-     }
- }