QDBusInterface Class

Die Klasse QDBusInterface ist ein Proxy für Schnittstellen auf entfernten Objekten. Mehr...

Kopfzeile: #include <QDBusInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus
Vererbungen: QDBusAbstractInterface

Öffentliche Funktionen

QDBusInterface(const QString &service, const QString &path, const QString &interface = QString(), const QDBusConnection &connection = QDBusConnection::sessionBus(), QObject *parent = nullptr)
virtual ~QDBusInterface()

Detaillierte Beschreibung

QDBusInterface ist eine generische Zugriffsklasse, die verwendet wird, um Aufrufe an entfernte Objekte zu platzieren, eine Verbindung zu Signalen herzustellen, die von entfernten Objekten exportiert werden, und den Wert von entfernten Eigenschaften zu erhalten/zu setzen. Diese Klasse ist nützlich für den dynamischen Zugriff auf entfernte Objekte, d.h. wenn Sie keinen generierten Code haben, der die entfernte Schnittstelle darstellt.

Die Aufrufe erfolgen in der Regel über die Funktion call(), die die Nachricht konstruiert, über den Bus sendet, auf die Antwort wartet und die Antwort dekodiert. Signale werden mit der normalen Funktion QObject::connect() verbunden. Schließlich wird mit den Funktionen QObject::property() und QObject::setProperty() auf Eigenschaften zugegriffen.

Der folgende Codeschnipsel zeigt, wie eine mathematische Operation von "2 + 2" in einer entfernten Anwendung namens com.example.Calculator ausgeführt wird, auf die über den Sitzungsbus 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 4

Siehe auch Qt D-Bus XML compiler (qdbusxml2cpp).

Dokumentation der Mitgliedsfunktionen

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 auf dem Dienst service verbunden ist, unter Verwendung der angegebenen connection. Wenn interface eine leere Zeichenkette ist, 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 weitere Erstellungen der gleichen Schnittstelle zu beschleunigen.

parent wird an den Konstruktor der Basisklasse übergeben.

Wenn der entfernte Dienst service nicht vorhanden ist oder wenn ein Fehler beim Versuch auftritt, die Beschreibung der entfernten Schnittstelle interface zu erhalten, ist das erzeugte Objekt nicht gültig (siehe isValid()).

[virtual noexcept] QDBusInterface::~QDBusInterface()

Zerstört die Objektschnittstelle und gibt alle verwendeten Ressourcen frei.

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