QDBus 问题:获取 org.freedesktop.DBus.Error.UnknownMethod,但方法存在

Posted

技术标签:

【中文标题】QDBus 问题:获取 org.freedesktop.DBus.Error.UnknownMethod,但方法存在【英文标题】:QDBus problem: getting org.freedesktop.DBus.Error.UnknownMethod, but method exists 【发布时间】:2011-03-28 06:16:11 【问题描述】:

我在 Ubuntu 上使用 QDBus 编写 C++,我有以下代码 sn-p:

this->m_cRemoteInterface = new QDBusInterface("org.my.service", "/data", "org.freedesktop.DBus.Properties.Get"); 

QDBusReply<uint64_t> cResult = m_cRemoteInterface->call("property1");

代码抛出如下错误:

org.freedesktop.DBus.Error.UnknownMethod: 方法“property1” 界面上的签名“” “org.freedesktop.DBus.Properties.Get” 不存在

但是当我在 shell 中发出以下命令时,它会返回正确的值:

dbus org.my.service /data org.freedesktop.DBus.Properties.Get " " 属性1

我会做错什么?

提前致谢,emi

【问题讨论】:

【参考方案1】:

经过一下午的反复试验:

我声明

org.freedesktop.DBus.Properties.Get

作为接口,这是不对的。

我只能使用

org.freedesktop.DBus.Properties

作为接口然后

call("Get", "", "property1");

希望这对某人有所帮助。 :)。

【讨论】:

以上是关于QDBus 问题:获取 org.freedesktop.DBus.Error.UnknownMethod,但方法存在的主要内容,如果未能解决你的问题,请参考以下文章

QDBus 发送 int[]

使用 qdbus 连接到信号

QDbus:在同一路径上注册多个对象

qdbus 多个接口在同一个对象路径中

通过 QDBus 发送浮点数

QDbus 信号不工作(暂停交付)