QDbus:在同一路径上注册多个对象
Posted
技术标签:
【中文标题】QDbus:在同一路径上注册多个对象【英文标题】:QDbus: register multiple objects on same path 【发布时间】:2014-08-05 12:59:39 【问题描述】:如果我理解的话,即使对象在 Q_ClassInfo 中有不同的接口,也可以在同一路径上只使用一次 registerObject 方法。
这是正确的吗?
【问题讨论】:
【参考方案1】:是的,它是正确的。 但是,如果您确实想在同一路径注册多个对象,您可以通过将这些对象(例如 childX、childY)声明为对象的子对象来实现,例如 parentObject 然后调用 register 对象为:
registerObject(yourPath, parentObject, QDBusConnection::ExportAdaptors)
这将在路径 yourPath
处注册对象 childX 和 childY注意:childX 和 childY 必须继承 QDBusAbstractAdaptor
【讨论】:
有效吗?我还没有设法用 Telepathy API 的多个接口实例化一个对象(来自规范Client_Handler.xml
和 Client.xml
,在 qt5.5 上生成了像 qdbusxml2cpp -a Client Client.xml
这样的绑定)。
澄清一下: 1. class ParentClass : public QObject, public QDBusContext
有私有成员 childX' and 'childY' 2. the
ChildX` 和 ChildY
类派生自 QDBusAbstractAdaptor
(派生)类3. 实例化ChildX
和ChildY
时,将parentObject
用作它们的父级 4. 将parentObject
注册到D-Bus,如上述响应中所述以上是关于QDbus:在同一路径上注册多个对象的主要内容,如果未能解决你的问题,请参考以下文章
在同一张地图上显示多个注册用户的位置(Android Studio、Firebase、Kotlin)
opensuse 安装 Anaconda3 之后出现Could not start d-bus. Can you call qdbus?