Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Qt中的QDBusMessage检索数据_Qt_Dbus_Networkmanager - Fatal编程技术网

从Qt中的QDBusMessage检索数据

从Qt中的QDBusMessage检索数据,qt,dbus,networkmanager,Qt,Dbus,Networkmanager,我正在开发一个应用程序,它必须实现WiFi连接机制(它将是一个全屏触摸屏应用程序)。为此,我使用DBus与networkmanager通信。我成功地让它扫描访问点并在QTableView中列出它们。下一步是连接到选定的wifi网络。尝试连接时,我要做的第一件事是检查系统中是否已经存在到该接入点的连接,因此我要执行以下操作: settings = new QDBusInterface("org.freedesktop.NetworkManager", "/org/fr

我正在开发一个应用程序,它必须实现WiFi连接机制(它将是一个全屏触摸屏应用程序)。为此,我使用DBus与networkmanager通信。我成功地让它扫描访问点并在QTableView中列出它们。下一步是连接到选定的wifi网络。尝试连接时,我要做的第一件事是检查系统中是否已经存在到该接入点的连接,因此我要执行以下操作:

settings = new QDBusInterface("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings", "org.freedesktop.NetworkManager.Settings", dbusConnection, this);
QDBusMessage msg = settings->call("ListConnections");
QDBusArgument arg = msg.arguments().at(0).value<QDBusArgument>();
QList<QDBusObjectPath> pathsList = qdbus_cast<QList<QDBusObjectPath>>(arg);
foreach (QDBusObjectPath p, pathsList) {
    QDBusInterface *conn = new QDBusInterface("org.freedesktop.NetworkManager", p.path(), "org.freedesktop.NetworkManager.Settings.Connection", dbusConnection);
    QDBusMessage msg = conn->call("GetSettings");
    qDebug() << "Reply: " << msg;
}
我想我应该用QDBusArgument类来做,但是我不知道应该怎么做。有人能告诉我最好的方法是什么吗


谢谢。

我设法解决了我的问题,结果很容易。我创建了map对象并使用了>>操作符:

QDBusArgument arg = args.at(0).value<QDBusArgument>();
QMap<QString, QMap<QString, QVariant>> map;
arg >> map;
QDBusArgument arg=args.at(0.value();
QMap地图;
arg>>地图;
QDBusArgument arg = args.at(0).value<QDBusArgument>();
QMap<QString, QMap<QString, QVariant>> map;
arg >> map;