Verwendung von „ Qt D-Bus “-Adaptern

Adapter sind spezielle Klassen, die an jede von ` QObject` abgeleitete Klasse angehängt werden und über D-Bus die Schnittstelle zur Außenwelt bereitstellen. Adapter sind als „leichte“ Klassen konzipiert, deren Hauptzweck darin besteht, Aufrufe an das eigentliche Objekt weiterzuleiten und von diesem entgegenzunehmen, wobei sie gegebenenfalls die Eingaben aus der Außenwelt validieren oder konvertieren und so das eigentliche Objekt schützen.

Im Gegensatz zur Mehrfachvererbung können Adapter jederzeit zu jedem Objekt hinzugefügt (aber nicht entfernt) werden, was eine größere Flexibilität beim Exportieren bestehender Klassen ermöglicht. Ein weiterer Vorteil von Adaptern besteht darin, ähnliche, aber nicht identische Funktionalität in gleichnamigen Methoden verschiedener Schnittstellen bereitzustellen – ein Fall, der recht häufig vorkommt, wenn eine neue Version einer Standardschnittstelle zu einem Objekt hinzugefügt wird.

Um einen Adapter zu verwenden, muss eine Klasse erstellt werden, die v QDBusAbstractAdaptor erbt. Da es sich dabei um eine von QObject abgeleitete Standardklasse handelt, muss das Makro Q_OBJECT in der Deklaration erscheinen und die Quelldatei muss mit dem moc-Tool verarbeitet werden. Die Klasse muss außerdem einen Eintrag vom Typ „ Q_CLASSINFO “ mit dem Namen „ "D-Bus Interface" “ enthalten, der angibt, welche Schnittstelle exportiert wird. Pro Klasse wird nur ein Eintrag unterstützt.

Jeder öffentliche Slot in der Klasse ist über den Bus mittels Nachrichten vom Typ `MethodCall` zugänglich. (Weitere Informationen findest du unter „Deklarieren von Slots in D-Bus-Adaptern “.) Signale in der Klasse werden automatisch über D-Bus weitergeleitet. Allerdings sind nicht alle Typen in den Parameterlisten von Signalen oder Slots zulässig: Weitere Informationen findest du unter „Das Qt D-Bus -Typsystem “.

Außerdem wird jede mit „ Q_PROPERTY “ deklarierte Eigenschaft automatisch über die „Properties“-Schnittstelle auf D-Bus verfügbar gemacht. Da das „ QObject “-Eigenschaftssystem keine nicht lesbaren Eigenschaften zulässt, ist es nicht möglich, schreibgeschützte Eigenschaften mithilfe von Adaptern zu deklarieren.

Weitere Informationen:

Siehe auch „ 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.