在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);
- }
- }