QDBusMessage Class
La classe `QDBusMessage` représente un message envoyé ou reçu via le bus D-Bus. En savoir plus...
| En-tête : | #include <QDBusMessage> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake : | QT += dbus |
Types publics
| enum | MessageType { MethodCallMessage, SignalMessage, ReplyMessage, ErrorMessage, InvalidMessage } |
Fonctions publiques
| QDBusMessage() | |
| QDBusMessage(const QDBusMessage &other) | |
(since 6.11) | QDBusMessage(QDBusMessage &&other) |
| ~QDBusMessage() | |
| QList<QVariant> | arguments() const |
| bool | autoStartService() const |
| QDBusMessage | createErrorReply(const QDBusError &error) const |
| QDBusMessage | createErrorReply(QDBusError::ErrorType type, const QString &msg) const |
| QDBusMessage | createErrorReply(const QString &name, const QString &msg) const |
| QDBusMessage | createReply(const QList<QVariant> &arguments = QList<QVariant>()) const |
| QDBusMessage | createReply(const QVariant &argument) const |
| QString | errorMessage() const |
| QString | errorName() const |
| QString | interface() const |
| bool | isDelayedReply() const |
| bool | isInteractiveAuthorizationAllowed() const |
| bool | isReplyRequired() const |
| QString | member() const |
| QString | path() const |
| QString | service() const |
| void | setArguments(const QList<QVariant> &arguments) |
| void | setAutoStartService(bool enable) |
| void | setDelayedReply(bool enable) const |
| void | setInteractiveAuthorizationAllowed(bool enable) |
| QString | signature() const |
| void | swap(QDBusMessage &other) |
| QDBusMessage::MessageType | type() const |
| QDBusMessage & | operator<<(const QVariant &arg) |
| QDBusMessage & | operator=(QDBusMessage &&other) |
| QDBusMessage & | operator=(const QDBusMessage &other) |
Membres publics statiques
| QDBusMessage | createError(const QDBusError &error) |
| QDBusMessage | createError(QDBusError::ErrorType type, const QString &msg) |
| QDBusMessage | createError(const QString &name, const QString &msg) |
| QDBusMessage | createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method) |
| QDBusMessage | createSignal(const QString &path, const QString &interface, const QString &name) |
| QDBusMessage | createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name) |
Description détaillée
Cet objet peut représenter n'importe lequel des quatre types de messages (MessageType) pouvant circuler sur le bus :
- Appels de méthode
- Valeurs de retour de méthode
- Émissions de signaux
- Codes d'erreur
Les objets de ce type sont créés à l'aide des fonctions statiques createError(), createMethodCall() et createSignal(). Utilisez la fonction QDBusConnection::send() pour envoyer les messages.
Documentation sur les types de membres
enum QDBusMessage::MessageType
Les types de messages possibles :
| Constante | Valeur | Description |
|---|---|---|
QDBusMessage::MethodCallMessage | 1 | message représentant un appel de méthode sortant ou entrant |
QDBusMessage::SignalMessage | 4 | un message représentant l'émission d'un signal sortant ou entrant |
QDBusMessage::ReplyMessage | 2 | un message représentant les valeurs de retour d'un appel de méthode |
QDBusMessage::ErrorMessage | 3 | un message représentant une condition d'erreur en réponse à un appel de méthode |
QDBusMessage::InvalidMessage | 0 | un message non valide : cette valeur n’est jamais définie sur les messages reçus de D-Bus |
Documentation des fonctions membres
QDBusMessage::QDBusMessage()
Crée un objet `QDBusMessage` vide et non valide.
Voir également createError(), createMethodCall() et createSignal().
QDBusMessage::QDBusMessage(const QDBusMessage &other)
Crée une copie de l'objet fourni par ` other`.
Remarque : les objets QDBusMessage sont partagés. Les modifications apportées à la copie affecteront également l'original. Voir setDelayedReply() pour plus d'informations.
[noexcept, since 6.11] QDBusMessage::QDBusMessage(QDBusMessage &&other)
Déplace l'other vers cet objet.
Remarque : l'objet d'origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'affectation d'une nouvelle valeur.
Cette fonction a été introduite dans Qt 6.11.
[noexcept] QDBusMessage::~QDBusMessage()
Supprime l'objet et libère toutes les ressources qui étaient occupées.
QList<QVariant> QDBusMessage::arguments() const
Renvoie la liste des arguments qui vont être envoyés ou qui ont été reçus via D-Bus.
Voir également setArguments().
bool QDBusMessage::autoStartService() const
Renvoie l'indicateur de démarrage automatique, tel que défini par la fonction setAutoStartService(). Par défaut, cet indicateur est défini sur « true », ce qui signifie que la fonction Qt D-Bus lancera automatiquement un service s'il n'est pas déjà en cours d'exécution.
Voir également la fonction ` setAutoStartService()`.
[static] QDBusMessage QDBusMessage::createError(const QDBusError &error)
Crée un nouveau message DBus représentant l'error on fournie.
[static] QDBusMessage QDBusMessage::createError(QDBusError::ErrorType type, const QString &msg)
Crée un nouveau message DBus pour le type d'erreur « type » à partir du message « msg ». Renvoie le message DBus.
[static] QDBusMessage QDBusMessage::createError(const QString &name, const QString &msg)
Crée un nouveau message DBus représentant une erreur, avec les paramètres ` name ` et ` msg` fournis.
QDBusMessage QDBusMessage::createErrorReply(const QDBusError &error) const
Crée un nouveau message DBus représentant un message de réponse d'erreur, à partir de l'objet ` error ` fourni.
QDBusMessage QDBusMessage::createErrorReply(QDBusError::ErrorType type, const QString &msg) const
Crée un nouveau message de réponse DBus pour le type d'erreur « type » à partir du message « msg ». Renvoie le message DBus.
QDBusMessage QDBusMessage::createErrorReply(const QString &name, const QString &msg) const
Crée un nouveau message DBus représentant un message de réponse d'erreur, avec les paramètres name et msg fournis.
[static] QDBusMessage QDBusMessage::createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)
Crée un nouveau message DBus représentant un appel de méthode. Un appel de méthode indique toujours son adresse de destination (service, path, interface et method).
Le bus DBus permet d’appeler une méthode sur un objet distant donné sans spécifier l’interface de destination, si le nom de la méthode est unique. Cependant, si deux interfaces de l’objet distant exportent le même nom de méthode, le résultat est indéfini (l’une des deux peut être appelée ou une erreur peut être renvoyée).
Lors de l’utilisation de DBus dans un contexte peer-to-peer (c’est-à-dire hors bus), le paramètre ` service ` est facultatif.
La classe ` QDBusInterface ` offre une abstraction plus simple de l’appel synchrone de méthodes.
Cette fonction renvoie un objet ` QDBusMessage ` qui peut être envoyé avec ` QDBusConnection::call()`.
QDBusMessage QDBusMessage::createReply(const QList<QVariant> &arguments = QList<QVariant>()) const
Crée un nouveau message DBus représentant une réponse, avec l'arguments on fournie.
QDBusMessage QDBusMessage::createReply(const QVariant &argument) const
Crée un nouveau message DBus représentant une réponse, avec l'argument on fournie.
[static] QDBusMessage QDBusMessage::createSignal(const QString &path, const QString &interface, const QString &name)
Crée un nouveau message DBus avec les paramètres path, interface et name fournis, représentant l'émission d'un signal.
Un signal DBus est émis par une application et est reçu par toutes les applications qui écoutent ce signal sur cette interface.
L'objet ` QDBusMessage ` renvoyé peut être envoyé à l'aide de la fonction ` QDBusConnection::send()`.
[static] QDBusMessage QDBusMessage::createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)
Crée un nouveau message DBus avec les paramètres path, interface et name fournis, représentant l'émission d'un signal vers une destination spécifique.
Un signal DBus est émis par une application et n’est reçu que par l’application propriétaire du nom de destination service.
L’objet ` QDBusMessage ` renvoyé peut être envoyé à l’aide de la fonction ` QDBusConnection::send()`.
QString QDBusMessage::errorMessage() const
Renvoie le message lisible par l'utilisateur associé à l'erreur reçue.
QString QDBusMessage::errorName() const
Renvoie le nom de l'erreur qui s'est produite.
QString QDBusMessage::interface() const
Renvoie l'interface de la méthode appelée (dans le cas d'un appel de méthode) ou celle du signal reçu.
bool QDBusMessage::isDelayedReply() const
Renvoie l'indicateur de réponse différée, tel qu'il a été défini par la fonction ` setDelayedReply()`. Par défaut, cet indicateur est à « false », ce qui signifie que ` Qt D-Bus ` générera des réponses automatiques lorsque cela sera nécessaire.
bool QDBusMessage::isInteractiveAuthorizationAllowed() const
Indique si le drapeau « ALLOW_INTERACTIVE_AUTHORIZATION » est activé pour le message.
Voir également ` setInteractiveAuthorizationAllowed()` et ` QDBusAbstractInterface::isInteractiveAuthorizationAllowed()`.
bool QDBusMessage::isReplyRequired() const
Renvoie l'indicateur précisant si ce message doit faire l'objet d'une réponse ou non. Cela n'a de sens que pour les messages de type « method call messages » : tout autre type de message ne peut pas faire l'objet de réponses et cette fonction renverra toujours « false » pour ceux-ci.
QString QDBusMessage::member() const
Renvoie le nom du signal émis ou celui de la méthode appelée.
QString QDBusMessage::path() const
Renvoie le chemin d'accès de l'objet auquel ce message est envoyé (dans le cas d'un appel de méthode) ou provenant duquel il est reçu (dans le cas d'un signal).
QString QDBusMessage::service() const
Renvoie le nom du service ou l'adresse de bus de l'appel de méthode à distance.
void QDBusMessage::setArguments(const QList<QVariant> &arguments)
Définit les arguments qui seront envoyés via D-Bus à arguments. Il s'agira des arguments d'un appel de méthode ou des paramètres du signal.
Notez que l'appel de ` QVariantMap ` avec une valeur ` QVariant ` non valide n'est pas autorisé dans ` arguments`.
Voir également arguments().
void QDBusMessage::setAutoStartService(bool enable)
Définit l'indicateur de démarrage automatique sur « enable ». Cet indicateur n'a de sens que pour les messages d'appel de méthode ; il indique au serveur D-Bus soit de démarrer automatiquement le service correspondant au nom du service, soit de ne pas le démarrer automatiquement.
Par défaut, cet indicateur est à « true », c'est-à-dire qu'un service est lancé automatiquement. Cela signifie :
Lorsque le service auquel cet appel de méthode est destiné est déjà en cours d’exécution, l’appel de méthode lui est transmis. Si le service n’est pas encore en cours d’exécution, le démon D-Bus est invité à démarrer automatiquement le service associé à ce nom de service. Cette gestion est assurée par des fichiers .service placés dans un répertoire connu du serveur D-Bus. Chacun de ces fichiers contient un nom de service et le chemin d’accès à un programme qui doit être exécuté lorsque ce nom de service est demandé.
Voir également autoStartService().
void QDBusMessage::setDelayedReply(bool enable) const
Détermine si le message fera l'objet d'une réponse ultérieure (si enable est à « true ») ou si une réponse automatique doit être générée par Qt D-Bus (si enable est à « false »).
Dans D-Bus, tous les appels de méthode doivent générer une réponse à l’appelant, sauf si celui-ci indique explicitement le contraire (voir isReplyRequired()). La méthode QtDBus génère automatiquement ces réponses pour tous les slots appelés, mais elle permet également aux slots d’indiquer s’ils se chargeront d’envoyer la réponse ultérieurement, une fois le traitement de la fonction terminé.
Voir également isDelayedReply() et Réponses différées.
void QDBusMessage::setInteractiveAuthorizationAllowed(bool enable)
Active ou désactive le drapeau « ALLOW_INTERACTIVE_AUTHORIZATION » dans un message.
Cet indicateur n’a de sens que pour les messages d’appel de méthode (QDBusMessage::MethodCallMessage). Si enable est défini sur true, l’indicateur signale au destinataire que l’appelant de la méthode est prêt à attendre qu’une autorisation interactive ait lieu (par exemple via Polkit) avant que la méthode proprement dite ne soit exécutée.
Si enable est défini sur false, l’indicateur n’est pas activé, ce qui signifie que l’autre partie est censée prendre toute décision d’autorisation de manière non interactive et sans délai. Il s’agit du comportement par défaut.
L'erreur « org.freedesktop.DBus.Error.InteractiveAuthorizationRequired » indique que l'autorisation a échoué, mais qu’elle aurait pu aboutir si ce drapeau avait été activé.
Voir également isInteractiveAuthorizationAllowed() et QDBusAbstractInterface::setInteractiveAuthorizationAllowed().
QString QDBusMessage::signature() const
Renvoie la signature du signal reçu ou celle des arguments de sortie d'un appel de méthode.
[noexcept] void QDBusMessage::swap(QDBusMessage &other)
Échange ce message avec other. Cette opération est très rapide et ne pose jamais de problème.
QDBusMessage::MessageType QDBusMessage::type() const
Renvoie le type du message.
QDBusMessage &QDBusMessage::operator<<(const QVariant &arg)
Ajoute l'argument arg à la liste des arguments à envoyer via D-Bus lors d'un appel de méthode ou de l'émission d'un signal.
[noexcept] QDBusMessage &QDBusMessage::operator=(QDBusMessage &&other)
La fonction « move-assign » attribue la valeur de other à cet objet.
Remarque : l’objet d’origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l’affectation d’une nouvelle valeur.
QDBusMessage &QDBusMessage::operator=(const QDBusMessage &other)
Copie le contenu de l'objet fourni par ` other`.
Remarque : les objets QDBusMessage sont partagés. Les modifications apportées à la copie affecteront également l'original. Voir setDelayedReply() pour plus d'informations.
© 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.