QDbusReply无法调用DBus函数,该函数返回带Qt4的aa {sv}?

时间:2015-02-27 15:17:41

标签: qt4 qdbus

我有一个dbus接口,按预期工作在d-feet但是当我想从我的QT4应用程序中调用它时,列表的大小为零:(

我想,aa {sv}可以从Qt4到QVariantList使用,对吧?

QDBusReply< QVariantList > reply = dbusinterface.call("getUsers");
QVariantList value = reply.value();
qDebug() << "user size: " << value.size();

有人可以对此有所了解吗?谢谢!

1 个答案:

答案 0 :(得分:0)

确定。我终于找到了一种检索正确列表的方法。 没有任何保证&#34;方式&#34;但至少,它做了应有的事情:)。

QDBusMessage result = dbusinterface.call("getUsers");
QDBusArgument v = result.arguments()[0].value<QDBusArgument>();
QVariantMap m;
QVariantList l;

v.beginArray();
while(!v.atEnd()) {
    v >> m;
    l.append(m);
}

qDebug() << "users count: " << l.size();