Sur cette page

QDBusInterface Class

La classe QDBusInterface est un proxy pour les interfaces des objets distants. Plus d'informations...

En-tête : #include <QDBusInterface>
CMake : find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake : QT += dbus
Héritages : 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 placer des appels vers des objets distants, se connecter à des 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 aux objets distants, c'est-à-dire lorsque vous ne disposez pas d'un code généré qui représente l'interface distante.

Les appels sont généralement placés en utilisant la fonction call(), qui construit le message, l'envoie sur le bus, attend la réponse et la décode. Les signaux sont connectés à l'aide de la fonction normale QObject::connect(). Enfin, les propriétés sont accessibles à l'aide des fonctions QObject::property() et QObject::setProperty().

L'extrait de code suivant montre comment effectuer une opération mathématique sur "2 + 2" dans une application distante appelée com.example.Calculator, à laquelle on accède par 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 Qt D-Bus Compilateur XML (qdbusxml2cpp).

Documentation sur les 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 dynamique QDBusInterface associé à l'interface interface sur l'objet au chemin path sur le service service, en utilisant l'adresse connection. Si interface est une chaîne vide, l'objet créé fera référence à la fusion de toutes les interfaces trouvées par introspection de cet objet. Sinon, si interface n'est pas vide, l'objet QDBusInterface sera mis en cache pour accélérer les créations ultérieures de la même interface.

parent est transmis au constructeur de la classe de base.

Si le service distant service n'est pas présent ou si une erreur se produit lors de l'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 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.