使用C++/QtDBus。我试图从DBus调用中得到一个回复,这个函数被描述为:
object, dict PullAll(string targetfile, dict filters).我在我正在做的qDBusRegisterMetaType处理程序中注册了一个定义为:typedef QPair< QDBusObjectPath, QVariantMap > Transfer;的类型( QDBusPendingCallWatcher ):
QDBusPendingReply<Transfer> reply = *pwatcher;我收到一个错误:
意外回复签名: got
"oa{sv}",预期"(oa{sv})"
怎么了?"(oa{sv})“中的括号是什么?
发布于 2014-06-03 10:22:43
我认为整个信息需要用一个结构来包装。至少,你有适当的签名,否则,并得到了回应。
arrays: []
dict entries: {}
structs: ()我对QtDbus并不那么熟悉,但是看看QDbusArgument类的页面,您可能需要这样做:
argument.beginStructure();
argument << mystruct.objectpath << mystruct.array;
argument.endStructure();https://stackoverflow.com/questions/22911494
复制相似问题