Sur cette page

QDBusInterface Class

La classe `QDBusInterface` sert de proxy pour les interfaces des objets distants. En savoir plus...

En-tête : #include <QDBusInterface>
CMake : find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake : QT += dbus
Hérite de : QDBusAbstractInterface

Fonctions publiques

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

Description détaillée

QDBusInterface est une classe d'accès générique utilisée pour effectuer des appels vers des objets distants, se connecter aux signaux exportés par des objets distants et obtenir/définir la valeur de propriétés distantes. Cette classe est utile pour l'accès dynamique à des objets distants : c'est-à-dire lorsque vous ne disposez pas d'un code généré représentant l'interface distante.

Les appels sont généralement effectués à l’aide de la fonction ` call()`, qui construit le message, l’envoie sur le bus, attend la réponse et la décode. La connexion aux signaux s’effectue à l’aide de la fonction standard ` QObject::connect()`. Enfin, l’accès aux propriétés s’effectue à l’aide des fonctions ` QObject::property()` et ` QObject::setProperty()`.

L'extrait de code suivant montre comment effectuer une opération mathématique de type « "2 + 2" » dans une application distante appelée « com.example.Calculator », accessible via le bus de session.

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

Voir également le compilateur XML d’Qt D-Bus (qdbusxml2cpp).

Documentation des fonctions membres

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

Crée un objet `QDBusInterface` dynamique associé à l'interface ` interface ` sur l'objet situé au chemin ` path ` du service ` service`, en utilisant l'connection` fournie. Si ` interface ` est une chaîne vide, l'objet créé fera référence à la fusion de toutes les interfaces détectées lors de l'introspection de cet objet. Sinon, si interface n’est pas vide, l’objet QDBusInterface sera mis en cache afin d’accélérer les créations ultérieures de la même interface.

parent est transmis au constructeur de la classe de base.

Si l’ service du service distant n’est pas présente ou si une erreur se produit lors de la tentative d’obtention de la description de l’interface distante interface, l’objet créé ne sera pas valide (voir isValid()).

[virtual noexcept] QDBusInterface::~QDBusInterface()

Détruit l'interface de l'objet et libère toutes les ressources utilisées.

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