Utilisation des adaptateurs Qt D-Bus

Les adaptateurs sont des classes spéciales associées à toute classe dérivée de ` QObject` et fournissant une interface avec le monde extérieur via D-Bus. Les adaptateurs sont conçus pour être des classes légères dont l’objectif principal est de relayer les appels vers et depuis l’objet réel, éventuellement en validant ou en convertissant les données provenant du monde extérieur, et ainsi de protéger l’objet réel.

Contrairement à l’héritage multiple, les adaptateurs peuvent être ajoutés à tout moment à n’importe quel objet (mais ne peuvent pas être supprimés), ce qui offre une plus grande flexibilité lors de l’exportation de classes existantes. Un autre avantage des adaptateurs est de fournir des fonctionnalités similaires, mais non identiques, dans des méthodes portant le même nom au sein d’interfaces différentes, un cas qui peut s’avérer assez courant lors de l’ajout d’une nouvelle version d’une interface standard à un objet.

Pour utiliser un adaptateur, il faut créer une classe héritant d’ QDBusAbstractAdaptor. Comme il s’agit d’une classe dérivée de l’ QObject standard, la macro Q_OBJECT doit figurer dans la déclaration et le fichier source doit être traité avec l’outil moc. La classe doit également contenir une entrée Q_CLASSINFO portant le nom "D-Bus Interface", déclarant l’interface qu’elle exporte. Une seule entrée par classe est prise en charge.

Tout slot public de la classe sera accessible via le bus par le biais de messages de type `MethodCall`. (Voir Déclaration des slots dans les adaptateurs D-Bus pour plus d’informations). Les signaux de la classe seront automatiquement relayés via D-Bus. Cependant, tous les types ne sont pas autorisés dans les listes de paramètres des signaux ou des slots : voir Le système de types d’ Qt D-Bus s pour plus d’informations.

De plus, toute propriété déclarée avec ` Q_PROPERTY ` sera automatiquement exposée via l’interface `Properties` sur D-Bus. Étant donné que le système de propriétés d’ QObject s n’autorise pas les propriétés non lisibles, il n’est pas possible de déclarer des propriétés en écriture seule à l’aide d’adaptateurs.

Plus d'informations :

Voir également 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.