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

Posted

技术标签:

【中文标题】QDbus:在同一路径上注册多个对象【英文标题】:QDbus: register multiple objects on same path 【发布时间】:2014-08-05 12:59:39 【问题描述】:

如果我理解的话,即使对象在 Q_ClassInfo 中有不同的接口,也可以在同一路径上只使用一次 registerObject 方法。

这是正确的吗?

【问题讨论】:

【参考方案1】:

是的,它是正确的。 但是,如果您确实想在同一路径注册多个对象,您可以通过将这些对象(例如 childXchildY)声明为对象的子对象来实现,例如 parentObject 然后调用 register 对象为:

registerObject(yourPath, parentObject, QDBusConnection::ExportAdaptors)

这将在路径 yourPath

处注册对象 childX 和 childY

注意:childXchildY 必须继承 QDBusAbstractAdaptor

【讨论】:

有效吗?我还没有设法用 Telepathy API 的多个接口实例化一个对象(来自规范 Client_Handler.xmlClient.xml,在 qt5.5 上生成了像 qdbusxml2cpp -a Client Client.xml 这样的绑定)。 澄清一下: 1. class ParentClass : public QObject, public QDBusContext 有私有成员 childX' and 'childY' 2. the ChildX` 和 ChildY派生QDBusAbstractAdaptor(派生)类3. 实例化ChildXChildY 时,将parentObject 用作它们的父级 4. 将parentObject 注册到D-Bus,如上述响应中所述

以上是关于QDbus:在同一路径上注册多个对象的主要内容,如果未能解决你的问题,请参考以下文章

在同一张地图上显示多个注册用户的位置(Android Studio、Firebase、Kotlin)

同一路径上的多个二进制文件的代码设计问题

clang在同一目录中包含多个搜索路径

opensuse 安装 Anaconda3 之后出现Could not start d-bus. Can you call qdbus?

提供多个端点的 Cometd 可能不会部署到同一路径 [/cometd]

Git多账号设置(同一个邮箱,多个账号)