使用 Qt D-Bus 适配器

适配器是附加到任何 QObject-派生类的特殊类,并为 D-Bus 提供与外部世界的接口。适配器旨在为轻量级类,其主要目的是中继对真实对象的调用,可能验证或转换外部世界的输入,从而保护真实对象。

与多重继承不同,适配器可以在任何时候添加到任何对象(但不能删除),这为导出现有类提供更大的灵活性。适配器的另一个优点是在不同接口的同一名称方法中提供类似但不完全相同的功能,这在向对象添加标准接口的新版本时可能会很常见。

要使用适配器,必须创建一个继承自 QDBusAbstractAdaptor 的类。由于这是一个标准的 QObject-派生类,声明中必须出现 Q_OBJECT 宏,源文件必须使用 moc 工具处理。该类还必须包含一个 Q_CLASSINFO 条目,带 "D-Bus Interface" 名称,声明它导出的接口。每个类只支持一个条目。

类中的任何公共槽都将通过 MethodCall 类型的消息在总线上访问。(有关更多信息,请参见 D-Bus 适配器中的声明槽)。类中的信号将自动通过 D-Bus 中继。然而,并非所有类型都允许信号或槽的参数列表:请参见 Qt D-Bus 类型系统 以获取更多信息。

此外,任何使用 Q_PROPERTY 声明的属性将自动在 D-Bus 的 Properties 接口上公开。由于 QObject 属性系统不允许非可读属性,因此无法使用适配器声明只写属性。

更多信息

另请参阅 QDBusAbstractAdaptor.

© 2024 The Qt Company Ltd. 本文档中包含的文档贡献均为其各自所有者的版权。提供的文档根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款进行许可。Qt以及相应的标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。