在 Windows 10 下运行,使用两个不同的系统进行测试:
当我运行 QNetworkConfigurationManager::allConfigurations()
时,我没有得到任何 WLAN 配置,即使我主动连接到 Wifi 网络也是如此。
标题:
public:
NetworkManager(QObject* parent = 0);
private slots:
void onNetworkConfigUpdate();
private:
QNetworkConfiguration cfg;
QList<QNetworkConfiguration> netcfgList;
QNetworkConfigurationManager ncm;
.cpp
NetworkManager::NetworkManager(QObject* parent) : QObject(parent) {
ncm.updateConfigurations();
connect(&ncm, SIGNAL(updateCompleted()), this, SLOT(onNetworkConfigUpdate()));
}
void NetworkManager::onNetworkConfigUpdate() {
netcfgList = ncm.allConfigurations();
for (auto& x : netcfgList) {
if (x.bearerType() == QNetworkConfiguration::BearerWLAN) {
qDebug() << "Wifi found: " << x.name();
} else {
qDebug() << "Something else: " << x.bearerType() << " - name: " << x.name();
}
}
}
输出:
Something else: 0 - name: "Teredo Tunneling Pseudo-Interface"
Something else: 1 - name: "Ethernet"
Something else: 1 - name: "VirtualBox Host-Only Network"
我在 Windows 10 上运行; Qt 5.9.4 与 MSVC2015
我检查了英特尔无线网卡和外部 USB Wifi-Stick。为什么没有显示任何 WLAN?
最佳答案
我遇到了同样的问题。对我来说是由于缺少承载插件 DLL 造成的。
为了解决这个问题,我必须在我的应用程序根文件夹中复制 QT“plugins/bearer”文件夹(包含 qgenericbearer.dll 和 qnativewifibearer.dll)。
像这样:
- 应用文件夹/
- 应用程序.exe
- ...
- Qt5Network.dll
- 承载者/
- qgenericbearer.dll
- qnativewifibearer.dll
关于c++ - QNetworkConfigurationManager::allConfigurations() 没有列出 WLAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48768295/