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