Using Qt D-Bus Adaptors
适配器是附加到任何 QObject派生类的特殊类, 并使用D-Bus提供与外部世界的接口. 适配器是轻量级的类, 主要目的是将调用传递到真实对象和从真实对象中继调用, 可能验证或转换来自外部世界的输入, 从而保护真实对象.
与多重继承不同, 适配器可以随时添加到任何对象(但不能删除), 这在导出现有类时提供了更大的灵活性. 适配器的另一个优点是在不同接口中的相同名称的方法中提供相似但不相同的功能, 当将标准接口的新版本添加到对象时, 这种情况非常常见.
为了使用适配器, 必须创建一个继承自 QDBusAbstractAdaptor的派生类. QDBusAbstractAdaptor 继承自 QObject, 必须声明 Q_OBJECT 宏, 且使用 moc 工具处理源文件. 这个类还必须包含一个名为"D-Bus Interface"
的 Q_CLASSINFO 条目, 声明要导出的接口. 每个类只支持一个条目.
类中的任何公共槽函数都可以通过MethodCall类型的消息通过总线访问. (详见 Declaring Slots in D-Bus Adaptors ). 类信号将通过D总线自动传递. 然而, 并非所有类型都允许信号或槽函数的参数列表: 详见 The Qt D-Bus Type System.
此外, 使用 Q_PROPERTY 声明的任何属性都将在D-Bus的Properties接口上自动公开. 由于 QObject 属性系统不允许非可读属性, 因此不可能使用适配器声明只写属性.
更多信息参见: