为QT中的wifi连接设置静态IP

为QT中的wifi连接设置静态IP,qt,wifi,qml,Qt,Wifi,Qml,我正在尝试创建一个基于QT的应用程序,用于扫描和连接WiFi网络。我正在使用作为参考代码 是否可以使用或任何相关类别为WiFi连接分配静态IP 如何验证受密码保护的网络 提前谢谢 我已经使用下面的代码集创建了一个网络会话 void BearerMonitor::createNewSessionFromQml(QString ssid) { QList<QNetworkConfiguration> allConfigurations = manager.allConfigura

我正在尝试创建一个基于QT的应用程序,用于扫描和连接WiFi网络。我正在使用作为参考代码

  • 是否可以使用或任何相关类别为WiFi连接分配静态IP
  • 如何验证受密码保护的网络
  • 提前谢谢

    我已经使用下面的代码集创建了一个网络会话

    void BearerMonitor::createNewSessionFromQml(QString ssid)
    {
        QList<QNetworkConfiguration> allConfigurations = manager.allConfigurations();
        while (!allConfigurations.isEmpty()) {
            QNetworkConfiguration config = allConfigurations.takeFirst();
            if(config.name()==ssid)
                createSessionFor(config);
        }
    }
    
    SessionWidget::SessionWidget(const QNetworkConfiguration &config, QObject *parent):QObject(parent)
        {
            session = new QNetworkSession(config, this);
            session->open();
    }
    
    void BearerMonitor::createNewSessionFromQml(QString ssid)
    {
    QList allConfigurations=manager.allConfigurations();
    而(!allConfigurations.isEmpty()){
    QNetworkConfiguration config=allConfigurations.takeFirst();
    如果(config.name()==ssid)
    createSessionFor(配置);
    }
    }
    SessionWidget::SessionWidget(const QNetworkConfiguration&config,QObject*父对象):QObject(父对象)
    {
    会话=新的QNetworkSession(配置,此);
    会话->打开();
    }
    
    不,你不能。至少不仅仅是qtapi

    请仔细阅读,特别是
    QNetworkConfiguration
    只是一种管理网络配置的工具。本机代码/操作系统交互需要编辑此类配置。从第二个链接:

    请注意,QNetworkConfiguration对象仅提供有关配置详细信息本身的有限信息。它的主要用途是充当一个配置标识符,通过它可以创建、销毁和监视链路层连接

    甚至“启动/停止网络接口”的说法也不完全正确,因为这样的功能只在某些操作系统(不是移动操作系统)中可用。请参阅第二个链接的“平台功能”部分,以了解有关该功能的更多详细信息

    同样的推理也适用于密码问题。一旦使用相应的密码在操作系统中注册了网络(由于本机代码或用户实际注册了该网络),则新的配置将可供使用,并通过更新配置列表。新配置包含密码,但不能从Qtapi编辑密码


    如前所述,本机代码是唯一的解决方案。尽管如此,由于iOS>5.1(Qt与Qt 5.4一样支持的最旧版本)中无法使用该版本的专用API。

    请指定您尝试执行的操作?@Johan Karlsson。请检查编辑的部分…非常感谢您的回复…很抱歉我没有使用IOS。。。。但在Ubuntu 14.04平台上……你是刚刚读了iOS部分还是全部答案?这一部分只是为了进一步说明iOS的局限性。而在另一个平台上,本机代码允许您(几乎)做所有事情,这在iOS中是不可能的。至于Ubuntu,答案中提到的表格中的“*nix”部分适用于……请看一看。