Uso de Adaptadores Qt D-Bus
Los adaptadores son clases especiales que se adjuntan a cualquier clase derivada de QObject y proporcionan la interfaz con el mundo externo utilizando D-Bus. Los adaptadores están pensados para ser clases ligeras cuyo principal propósito es retransmitir llamadas hacia y desde el objeto real, posiblemente validando o convirtiendo la entrada desde el mundo externo y, por lo tanto, protegiendo el objeto real.
A diferencia de la herencia múltiple, los adaptadores pueden añadirse en cualquier momento a cualquier objeto (pero no eliminarse), lo que permite una mayor flexibilidad a la hora de exportar clases existentes. Otra ventaja de los adaptadores es proporcionar una funcionalidad similar pero no idéntica en métodos del mismo nombre en diferentes interfaces, un caso que puede ser bastante común cuando se añade una nueva versión de una interfaz estándar a un objeto.
Para utilizar un adaptador, hay que crear una clase que herede QDBusAbstractAdaptor. Dado que se trata de una clase estándar derivada de QObject, la macro Q_OBJECT debe aparecer en la declaración y el fichero fuente debe procesarse con la herramienta moc. La clase también debe contener una entrada Q_CLASSINFO con el nombre "D-Bus Interface", declarando qué interfaz está exportando. Sólo se admite una entrada por clase.
Cualquier ranura pública de la clase será accesible a través del bus mediante mensajes del tipo MethodCall. (Para más información, véase Declaración de ranuras en adaptadores D-Bus ). Las señales de la clase se retransmitirán automáticamente a través de D-Bus. Sin embargo, no a todos los tipos se les permite señales o listas de parámetros de slots: ver El Sistema de Tipos Qt D-Bus para más información.
Además, cualquier propiedad declarada con Q_PROPERTY será automáticamente expuesta sobre la interfaz Properties en D-Bus. Dado que el sistema de propiedades de QObject no permite propiedades no legibles, no es posible declarar propiedades de sólo escritura utilizando adaptadores.
Más información:
- Declaración de ranuras en adaptadores D-Bus
- Declaración de señales en adaptadores D-Bus
- El sistema de tipos Qt D-Bus
- En el ejemplo de Ping Pong Complejo D-Bus,
complexpong.hycomplexpong.cppmuestran una implementación de QDBusAbstractAdaptor.
Ver también QDBusAbstractAdaptor.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.