无法使用 QT 连接到 wifi 网络

时间:2021-07-03 12:20:48

标签: c++ qt qt5 wifi qtnetwork

我正在尝试使用以下代码连接到 wifi 网络 但它不起作用也没有给出任何错误

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QNetworkConfiguration cfg;
    QNetworkConfigurationManager ncm;
    auto nc = ncm.allConfigurations();

    for (auto &x : nc)
    {
        if (x.bearerType() == QNetworkConfiguration::BearerWLAN)
        {
            if (x.name() == "Desired Network")
                qDebug() <<"Connecting to "<< x.name();
                cfg = x;
        }
    }
    auto session = new QNetworkSession(cfg);
    session->open();
    return a.exec();
}

它在终端中显示了“所需网络名称”的输出。

连接到所需的网络

1 个答案:

答案 0 :(得分:0)

您操作系统中的实际 NI 名称可能与您预期的不同。尝试更详细地调试它:

for (auto &x : nc)
{
    if (x.bearerType() == QNetworkConfiguration::BearerWLAN)
    {
        qDebug() << x.name() << " is a WIFI";
        if (x.name() == "Desired Network")
            qDebug() <<"Connecting to "<< x.name();
            cfg = x;
    }
    else
        qDebug() << x.name() << "\n";
}

例如在 Windows 上,这些名称将用引号括起来,很可能是因为 Qt 使用 WMIC 后端来获取它们。如果你的 NI 在 GUI 中被称为“Desired Network”,它实际上是 "\"Desired Network\""