Sur cette page

QDBusReply Class

template <typename T> class QDBusReply

La classe QDBusReply stocke la réponse à un appel de méthode à un objet distant. Plus d'informations...

En-tête : #include <QDBusReply>
CMake : find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake : QT += dbus

Fonctions publiques

QDBusReply(const QDBusError &error = QDBusError())
QDBusReply(const QDBusMessage &reply)
QDBusReply(const QDBusPendingCall &pcall)
QDBusReply(const QDBusPendingReply<T> &reply)
const QDBusError &error() const
bool isValid() const
QDBusReply<T>::Type value() const
operator QDBusReply<T>::Type() const
QDBusReply<T> &operator=(const QDBusError &dbusError)
QDBusReply<T> &operator=(const QDBusMessage &reply)
QDBusReply<T> &operator=(const QDBusPendingCall &pcall)

Description détaillée

Un objet QDBusReply est un sous-ensemble de l'objet QDBusMessage qui représente la réponse à un appel de méthode. Il ne contient que le premier argument de sortie ou le code d'erreur et est utilisé par les classes dérivées de QDBusInterface pour permettre le renvoi du code d'erreur en tant qu'argument de retour de la fonction.

Il peut être utilisé de la manière suivante :

QDBusReply<QString> reply = interface->call("RemoteMethod");
if (reply.isValid())
    // use the returned value
    useValue(reply.value());
else
    // call failed. Show an error condition.
    showError(reply.error());

Si l'appel de la méthode à distance ne peut pas échouer, vous pouvez ignorer la vérification de l'erreur :

reply = interface->call("RemoteMethod");

Cependant, s'il échoue dans ces conditions, la valeur renvoyée par QDBusReply<T>::value() est une valeur construite par défaut. Elle peut être impossible à distinguer d'une valeur de retour valide.

Les objets QDBusReply sont utilisés pour les appels à distance qui n'ont pas d'arguments de sortie ou de valeurs de retour (c'est-à-dire qu'ils ont un type de retour "void"). Utilisez la fonction isValid() pour tester si la réponse a réussi.

Voir également QDBusMessage et QDBusInterface.

Documentation des fonctions membres

QDBusReply::QDBusReply(const QDBusError &error = QDBusError())

Construit une réponse d'erreur à partir du code d'erreur D-Bus donné par error.

QDBusReply::QDBusReply(const QDBusMessage &reply)

Construire automatiquement un objet QDBusReply à partir du message de réponse reply, en extrayant la première valeur de retour s'il s'agit d'une réponse positive.

QDBusReply::QDBusReply(const QDBusPendingCall &pcall)

Construit automatiquement un objet QDBusReply à partir de l'appel asynchrone en attente pcall. Si l'appel n'est pas encore terminé, QDBusReply appellera QDBusPendingCall::waitForFinished(), qui est une opération bloquante.

Si les types de retour correspondent, QDBusReply extrait le premier argument de retour de la réponse.

QDBusReply::QDBusReply(const QDBusPendingReply<T> &reply)

Construit un objet QDBusReply à partir du message de réponse en attente, reply.

const QDBusError &QDBusReply::error() const

Renvoie le code d'erreur renvoyé par l'appel de la fonction distante. Si l'appel distant n'a pas renvoyé d'erreur (c'est-à-dire s'il a réussi), l'objet QDBusError renvoyé ne sera pas un code d'erreur valide (QDBusError::isValid() renverra false).

Voir également isValid().

bool QDBusReply::isValid() const

Renvoie true si aucune erreur ne s'est produite ; sinon, renvoie false.

Voir aussi error().

QDBusReply<T>::Type QDBusReply::value() const

Renvoie la valeur de retour des appels de la fonction distante. Si l'appel distant a renvoyé une erreur, la valeur de retour de cette fonction est indéfinie et peut être impossible à distinguer d'une valeur de retour valide.

Cette fonction n'est pas disponible si l'appel distant renvoie void.

QDBusReply::operator QDBusReply<T>::Type() const

Retourne la même chose que value().

Cette fonction n'est pas disponible si l'appel à distance renvoie void.

QDBusReply<T> &QDBusReply::operator=(const QDBusError &dbusError)

Définit cet objet pour qu'il contienne le code d'erreur donné par dbusError. Vous pourrez y accéder ultérieurement avec error().

QDBusReply<T> &QDBusReply::operator=(const QDBusMessage &reply)

Fait en sorte que cet objet contienne le message reply. Si reply est un message d'erreur, cette fonction copiera le code d'erreur et le message dans cet objet

Si reply est un message de réponse standard et contient au moins un paramètre, il sera copié dans cet objet, à condition qu'il soit du bon type. S'il n'est pas du même type que l'objet QDBusError, cette fonction affichera un code d'erreur indiquant une incompatibilité de type.

QDBusReply<T> &QDBusReply::operator=(const QDBusPendingCall &pcall)

Fait en sorte que cet objet contienne la réponse spécifiée par l'appel asynchrone en attente pcall. Si l'appel n'est pas encore terminé, cette fonction appellera QDBusPendingCall::waitForFinished() pour bloquer jusqu'à ce que la réponse arrive.

Si pcall se termine par un message d'erreur, cette fonction copiera le code d'erreur et le message dans cet objet

Si pcall se termine par un message de réponse standard et contient au moins un paramètre, celui-ci sera copié dans cet objet, à condition qu'il soit du bon type. S'il n'est pas du même type que l'objet QDBusError, cette fonction affichera un code d'erreur indiquant une incompatibilité de type.

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