QDBusAbstractAdaptor Class

Die Klasse QDBusAbstractAdaptor ist die Basisklasse der D-Bus-Adapterklassen. Mehr...

Kopfzeile: #include <QDBusAbstractAdaptor>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus
Vererbt: QObject

Öffentliche Funktionen

Geschützte Funktionen

QDBusAbstractAdaptor(QObject *obj)
bool autoRelaySignals() const
void setAutoRelaySignals(bool enable)

Makros

Detaillierte Beschreibung

Die Klasse QDBusAbstractAdaptor ist der Ausgangspunkt für alle Objekte, die Schnittstellen zur externen Welt über D-Bus bereitstellen wollen. QDBusConnection::registerObject Dies wird erreicht, indem eine oder mehrere von QDBusAbstractAdaptor abgeleitete Klassen an ein normales QObject angehängt werden und dieses dann unter QObject registriert wird. QDBusAbstractAdaptor-Objekte sind als leichtgewichtige Wrapper gedacht, die meist nur Aufrufe an das eigentliche Objekt (sein Elternteil) und die Signale von ihm weiterleiten.

Jede von QDBusAbstractAdaptor abgeleitete Klasse sollte die D-Bus-Schnittstelle, die sie implementiert, mit dem Makro Q_CLASSINFO in der Klassendefinition definieren. Beachten Sie, dass nur eine Schnittstelle auf diese Weise dargestellt werden kann.

QDBusAbstractAdaptor verwendet den Standardmechanismus QObject von Signalen, Slots und Eigenschaften, um zu bestimmen, welche Signale, Methoden und Eigenschaften an den Bus exportiert werden sollen. Jedes von QDBusAbstractAdaptor abgeleitete Signal wird automatisch über alle D-Bus-Verbindungen weitergeleitet, auf denen das Objekt registriert ist.

Von QDBusAbstractAdaptor abgeleitete Klassen müssen mit dem new Operator 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 der Mitgliedsfunktionen

[explicit protected] QDBusAbstractAdaptor::QDBusAbstractAdaptor(QObject *obj)

Konstruiert einen QDBusAbstractAdaptor mit obj als übergeordnetem Objekt.

[virtual noexcept] QDBusAbstractAdaptor::~QDBusAbstractAdaptor()

Zerstört den Adapter.

Achtung! Adapter werden automatisch zerstört, wenn das eigentliche Objekt, auf das sie sich beziehen, zerstört wird. Löschen Sie die Adapter nicht selbst.

[protected] bool QDBusAbstractAdaptor::autoRelaySignals() const

Gibt true zurück, wenn die automatische Weiterleitung von Signalen vom realen Objekt (siehe object()) aktiviert ist, andernfalls wird false zurückgegeben.

Siehe auch setAutoRelaySignals().

[protected] void QDBusAbstractAdaptor::setAutoRelaySignals(bool enable)

Schaltet die automatische Weiterleitung von Signalen des realen Objekts ein (siehe object()).

Die automatische Signalweiterleitung besteht aus einer Signal-zu-Signal-Verbindung der Signale des übergeordneten Objekts, die in beiden Klassen genau dieselbe Methodensignatur haben.

Wenn enable auf true gesetzt ist, werden die Signale verbunden; wenn auf false gesetzt, werden alle Signale getrennt.

Siehe auch autoRelaySignals().

Makro-Dokumentation

Q_NOREPLY

Das Makro Q_NOREPLY kann verwendet werden, um eine aufzurufende Methode zu markieren und nicht darauf zu warten, dass sie die Verarbeitung beendet, bevor sie von QDBusInterface::call() zurückkehrt. Die aufgerufene Methode kann keine Ausgabeargumente zurückgeben, und falls doch, werden solche Argumente verworfen.

Sie können dieses Makro in Ihren eigenen Adaptern verwenden, indem Sie es vor dem Rückgabewert Ihrer Methode (der "void" sein muss) in der Klassendeklaration platzieren, wie im Beispiel gezeigt:

Q_NOREPLY void myMethod();

Sein Vorhandensein in der Methodenimplementierung (außerhalb der Klassendeklaration) ist optional.

Siehe auch Qt D-Bus Adaptoren verwenden.

© 2025 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.