QNetworkSettingsManager 类

QNetworkSettingsManager 类提供了一个异步 API,用于网络设置。更多...

头文件 #include <QNetworkSettingsManager>
qmakeQT += networksettings

属性

  • services : QNetworkSettingsServiceFilter* const
  • userAgent : QNetworkSettingsUserAgent* const

公有函数

QNetworkSettingsManager(QObject *parent = nullptr)
voidclearConnectionState()
voidclearCurrentConnection(QNetworkSettingsService *service)
voidconnectBySsid(const QString &name, const QString &passphrase)
QNetworkSettingsService *currentWifiConnection()
QNetworkSettingsService *currentWiredConnection()
QNetworkSettingsInterface *interface(int type, int instance)
QNetworkSettingsInterfaceModel *interfaces()
QNetworkSettingsService *service(const QString &name, int type)
QNetworkSettingsServiceFilter *services()
voidsetCurrentConnection(QNetworkSettingsService *service)
voidsetUserAgent(QNetworkSettingsUserAgent *agent)
voidtryNextConnection()
QNetworkSettingsUserAgent *userAgent()

信号

详细介绍

网络管理器设计成用作包含可用网络接口和服务列表的模型。

使用接口模型的视图中的代理可以借助数据模型角色访问网络接口项。

可以通过QNetworkSettingsType::type属性控制模型中的服务列表,并通过QNetworkSettingsServiceFilter::itemFromRow()方法检索网络服务项。

以下代码演示了如何初始化网络管理器

manager = new QNetworkSettingsManager(this);
QObject::connect(manager, &QNetworkSettingsManager::interfacesChanged,
    this, &MainWindow::interfacesChanged);

QObject::connect(manager, &QNetworkSettingsManager::servicesChanged,
    this, &MainWindow::servicesChanged);

初始化网络管理器后,您可以按以下方式迭代 WiFi SSID

void WifiHandler::servicesChanged()
{
    QList<QNetworkSettingsService*> services = qobject_cast<QNetworkSettingsServiceModel*>(manager->services()->sourceModel())->getModel();

    for (const auto &service : services) {
        qDebug() << service->name();
    }
}


void WifiHandler::interfacesChanged()
{
    QList<QNetworkSettingsInterface*> interfaces = manager->interfaces()->getModel();
    for (const auto &interface : interfaces) {
        if (interface->type() == QNetworkSettingsType::Type::Wifi) {
            if (interface->powered()) {
                interface->scanServices();
            } else {
            interface->setPowered(true);
            }
        }
    }
}

另请参阅QNetworkSettingsService.

属性文档

[只读] currentWifiConnection : QNetworkSettingsService* const

持有当前 WiFi 连接。

访问函数

QNetworkSettingsService *currentWifiConnection()

通知信号

另请参阅QNetworkSettingsService.

[只读] currentWiredConnection : QNetworkSettingsService* const

存储当前有线连接。

访问函数

QNetworkSettingsService *currentWiredConnection()

通知信号

另请参阅QNetworkSettingsService.

[只读] interfaces : QNetworkSettingsInterfaceModel* const

存储接口模型。

访问函数

QNetworkSettingsInterfaceModel *interfaces()

通知信号

另请参阅 QNetworkSettingsInterfaceModel.

[只读] services : QNetworkSettingsServiceFilter* const

存储服务模型。

访问函数

QNetworkSettingsServiceFilter *services()

通知信号

另请参阅 QNetworkSettingsServiceFilter.

[只读] userAgent : QNetworkSettingsUserAgent* const

存储用于连接网络的用户凭据。

访问函数

QNetworkSettingsUserAgent *userAgent()

另请参阅 QNetworkSettingsUserAgent.

成员函数文档

[显式构造函数] QNetworkSettingsManager::QNetworkSettingsManager(QObject *parent = nullptr)

创建一个具有父对象parent的网络管理器。

void QNetworkSettingsManager::clearConnectionState()

清除连接状态。

void QNetworkSettingsManager::clearCurrentConnection(QNetworkSettingsService *service)

断开指定service的当前连接。

[可调用函数] void QNetworkSettingsManager::connectBySsid(const QString &name, const QString &passphrase)

使用密码passphrase创建到由name指定的网络的连接。

注意:此函数可通过元对象系统以及从QML调用。请参阅Q_INVOKABLE。

QNetworkSettingsService *QNetworkSettingsManager::currentWifiConnection()

返回当前WiFi连接。

注意:getter函数用于属性currentWifiConnection。

[信号] void QNetworkSettingsManager::currentWifiConnectionChanged()

当当前WiFi连接更改时发出此信号。

注意:属性currentWifiConnection的报知信号。

QNetworkSettingsService *QNetworkSettingsManager::currentWiredConnection()

返回当前有线连接。

注意:getter函数用于属性currentWiredConnection。

[信号] void QNetworkSettingsManager::currentWiredConnectionChanged()

当当前有线连接更改时发出此信号。

注意:属性currentWiredConnection的报知信号。

[可调用的] QNetworkSettingsInterface *QNetworkSettingsManager::interface(int type, int instance)

返回类型为 type 的网络接口实例 instance

注意:此函数可通过元对象系统以及从QML调用。请参阅Q_INVOKABLE。

QNetworkSettingsInterfaceModel *QNetworkSettingsManager::interfaces()

返回接口模型。

注意:该函数是属性 **interfaces** 的获取器。

[信号] void QNetworkSettingsManager::interfacesChanged()

当网络接口变化时发射此信号。

注意:这是属性 **interfaces** 的通知器信号。

[可调用的] QNetworkSettingsService *QNetworkSettingsManager::service(const QString &name, int type)

返回类型为 type 的服务模型 name

注意:此函数可通过元对象系统以及从QML调用。请参阅Q_INVOKABLE。

QNetworkSettingsServiceFilter *QNetworkSettingsManager::services()

返回服务模型。

QNetworkSettingsType::Type

注意:这是属性 **services** 的获取器。

[信号] void QNetworkSettingsManager::servicesChanged()

当网络服务变化时发射此信号。

注意:这是属性 **services** 的通知器信号。

void QNetworkSettingsManager::setCurrentConnection(QNetworkSettingsService *service)

创建到指定 service 的连接。

void QNetworkSettingsManager::setUserAgent(QNetworkSettingsUserAgent *agent)

将连接到网络的用户凭据设置为 agent

另请参阅:userAgent()。

void QNetworkSettingsManager::tryNextConnection()

尝试使用模型中下一个网络接口进行连接。

QNetworkSettingsUserAgent *QNetworkSettingsManager::userAgent()

返回连接到网络的用户凭据。

注意:这是属性 **userAgent** 的获取器。

另请参阅:setUserAgent()。

© 2024 The Qt Company Ltd. 本文档中的贡献文档版权属于各自的所有者。本提供的文档是根据自由软件基金会发布的 GNU Free Documentation License 1.3 的条款许可的。Qt 及相关标志是芬兰和/或其他国家 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。