QDBusAbstractAdaptor Class
Die Klasse „QDBusAbstractAdaptor“ ist die Basisklasse der D-Bus-Adapterklassen. Mehr dazu...
| Header: | #include <QDBusAbstractAdaptor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake: | QT += dbus |
| Erbt von: | QObject |
Öffentliche Funktionen
| virtual | ~QDBusAbstractAdaptor() |
Geschützte Funktionen
| QDBusAbstractAdaptor(QObject *obj) | |
| bool | autoRelaySignals() const |
| void | setAutoRelaySignals(bool enable) |
Makros
Ausführliche Beschreibung
Die Klasse `QDBusAbstractAdaptor` ist der Ausgangspunkt für alle Objekte, die über D-Bus Schnittstellen zur Außenwelt bereitstellen sollen. Dies wird erreicht, indem eine oder mehrere von QDBusAbstractAdaptor abgeleitete Klassen an einen normalen „ QObject “ angehängt und diese „ QObject “ anschließend mit „ QDBusConnection::registerObject “ registriert werden. QDBusAbstractAdaptor-Objekte sind als leichtgewichtige Wrapper gedacht, die meist lediglich Aufrufe an das eigentliche Objekt (ihren Elternteil) weiterleiten und die Signale von diesem weitergeben.
Jede von `QDBusAbstractAdaptor` abgeleitete Klasse sollte die von ihr implementierte D-Bus-Schnittstelle mithilfe des Makros ` Q_CLASSINFO ` in der Klassendefinition definieren. Beachten Sie, dass auf diese Weise nur eine Schnittstelle offengelegt werden kann.
QDBusAbstractAdaptor nutzt den Standardmechanismus von „ QObject “ mit Signalen, Slots und Eigenschaften, um zu bestimmen, welche Signale, Methoden und Eigenschaften an den Bus exportiert werden sollen. Jedes von von QDBusAbstractAdaptor abgeleiteten Klassen ausgesendete Signal wird automatisch über alle D-Bus-Verbindungen weitergeleitet, auf denen das Objekt registriert ist.
Von `QDBusAbstractAdaptor` abgeleitete Klassen müssen mithilfe des Operators ` new ` auf dem Heap erstellt werden und dürfen nicht vom Benutzer gelöscht werden (sie werden automatisch gelöscht, wenn das Objekt, mit dem sie verbunden sind, ebenfalls gelöscht wird).
Siehe auch „Verwendung von Adaptern “ und „ QDBusConnection “.
Dokumentation zu den Mitgliedsfunktionen
[explicit protected] QDBusAbstractAdaptor::QDBusAbstractAdaptor(QObject *obj)
Erstellt einen `QDBusAbstractAdaptor` mit ` obj ` als übergeordnetem Objekt.
[virtual noexcept] QDBusAbstractAdaptor::~QDBusAbstractAdaptor()
Löscht den Adapter.
Warnung: Adapter werden automatisch zerstört, wenn das eigentliche Objekt, auf das sie verweisen, zerstört wird. Löschen Sie die Adapter nicht selbst.
[protected] bool QDBusAbstractAdaptor::autoRelaySignals() const
Gibt „ true “ zurück, wenn die automatische Signalweiterleitung vom eigentlichen Objekt (siehe object()) aktiviert ist; andernfalls wird „ false “ zurückgegeben.
Siehe auch setAutoRelaySignals().
[protected] void QDBusAbstractAdaptor::setAutoRelaySignals(bool enable)
Schaltet die automatische Signalweiterleitung vom Realobjekt um (siehe object()).
Die automatische Signalweiterleitung besteht aus einer Signal-zu-Signal-Verbindung der Signale des übergeordneten Objekts, die in beiden Klassen genau dieselbe Methodensignatur aufweisen.
Ist ` enable ` auf `true` gesetzt, werden die Signale verbunden; ist es auf `false` gesetzt, werden alle Signale getrennt.
Siehe auch autoRelaySignals().
Makro-Dokumentation
Q_NOREPLY
Mit dem Makro `Q_NOREPLY` kann eine aufzurufende Methode markiert werden, ohne dass auf deren Abschluss gewartet wird, bevor die Rückgabe aus ` QDBusInterface::call()` erfolgt. Die aufgerufene Methode darf keine Ausgabeargumente zurückgeben; sollte sie dies dennoch tun, werden diese Argumente verworfen.
Sie können dieses Makro in Ihren eigenen Adaptern verwenden, indem Sie es in der Klassendeklaration vor dem Rückgabewert Ihrer Methode (der „void“ sein muss) platzieren, wie im Beispiel gezeigt:
Q_NOREPLY void myMethod();Das Vorhandensein des Makros in der Methodenimplementierung (außerhalb der Klassendeklaration) ist optional.
Siehe auch „Verwendung von` Qt D-Bus `-Adaptern“.
© 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.