【发布时间】:2021-09-15 01:25:20
【问题描述】:
我正在尝试使用以下代码连接到 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();
}
它在终端中显示“所需网络名称”的输出。
连接到所需的网络
【问题讨论】:
-
您实际期望发生什么?请注意,
QNetworkSession::open();是异步的,在您调用 exec() 时尚未完成,并且在某些系统上什么也不做 -
感谢您的回复,我在
session->open()之后添加了QThread::msleep(20000);,这给了它 20 秒的连接时间,但仍然无法连接,wifi 网络也受密码保护,我必须做吗代码有什么变化吗? -
来自
QThread::msleep的文档:"Avoid using this function if you need to wait for a given condition to change. Instead, connect a slot to the signal that indicates the change or use an event handler"。所以联系并回复相关的QNetworkSessionsignals。