QDBusInterface Class
Die Klasse „QDBusInterface“ ist ein Proxy für Schnittstellen zu entfernten Objekten. Mehr...
| Header: | #include <QDBusInterface> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake: | QT += dbus |
| Erbt von: | QDBusAbstractInterface |
Öffentliche Funktionen
| QDBusInterface(const QString &service, const QString &path, const QString &interface = QString(), const QDBusConnection &connection = QDBusConnection::sessionBus(), QObject *parent = nullptr) | |
| virtual | ~QDBusInterface() |
Ausführliche Beschreibung
QDBusInterface ist eine generische Zugriffsklasse, die dazu dient, Aufrufe an entfernte Objekte zu senden, eine Verbindung zu von entfernten Objekten exportierten Signalen herzustellen und den Wert entfernter Eigenschaften abzurufen bzw. festzulegen. Diese Klasse ist nützlich für den dynamischen Zugriff auf entfernte Objekte, d. h. wenn kein generierter Code vorhanden ist, der die entfernte Schnittstelle repräsentiert.
Aufrufe erfolgen in der Regel mithilfe der Funktion ` call()`, die die Nachricht erstellt, über den Bus sendet, auf die Antwort wartet und diese dekodiert. Die Verbindung zu Signalen wird mithilfe der üblichen Funktion ` QObject::connect()` hergestellt. Der Zugriff auf Eigenschaften erfolgt schließlich über die Funktionen ` QObject::property()` und ` QObject::setProperty()`.
Der folgende Codeausschnitt veranschaulicht, wie eine mathematische Operation „ "2 + 2" “ in einer Remote-Anwendung namens „ com.example.Calculator “ durchgeführt wird, auf die über den Session-Bus zugegriffen wird.
QDBusInterface remoteApp( "com.example.Calculator", "/Calculator/Operations",
"org.mathematics.RPNCalculator" );
remoteApp.call( "PushOperand", 2 );
remoteApp.call( "PushOperand", 2 );
remoteApp.call( "ExecuteOperation", "+" );
QDBusReply<int> reply = remoteApp.call( "PopOperand" );
if ( reply.isValid() )
printf( "%d", reply.value() ); // prints 4Siehe auch den XML-Compiler „Qt D-Bus “ (qdbusxml2cpp).
Dokumentation zu den Member-Funktionen
QDBusInterface::QDBusInterface(const QString &service, const QString &path, const QString &interface = QString(), const QDBusConnection &connection = QDBusConnection::sessionBus(), QObject *parent = nullptr)
Erstellt ein dynamisches QDBusInterface-Objekt, das mit der Schnittstelle „ interface “ auf dem Objekt unter dem Pfad „ path “ im Dienst „ service “ verknüpft ist, unter Verwendung des angegebenen „ connection “. Ist „ interface “ eine leere Zeichenkette, bezieht sich das erstellte Objekt auf die Zusammenführung aller Schnittstellen, die durch Introspektion dieses Objekts gefunden wurden. Andernfalls, wenn interface nicht leer ist, wird das QDBusInterface-Objekt zwischengespeichert, um die weitere Erstellung derselben Schnittstelle zu beschleunigen.
parent wird an den Konstruktor der Basisklasse übergeben.
Wenn die Remote-Service-Beschreibung service nicht vorhanden ist oder beim Abrufen der Beschreibung der Remote-Schnittstelle interface ein Fehler auftritt, ist das erstellte Objekt ungültig (siehe isValid()).
[virtual noexcept] QDBusInterface::~QDBusInterface()
Löscht die Objektschnittstelle und gibt alle verwendeten Ressourcen frei.
© 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.