Sur cette page

QDBusMessage Class

La classe QDBusMessage représente un message envoyé ou reçu sur le bus D-Bus. Plus d'informations...

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) qui peuvent se produire sur le bus :

  • Appels de méthode
  • Valeurs de retour des méthodes
  • Émissions de signaux
  • Codes d'erreur

Les objets de ce type sont créés avec les 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 :

ConstanteValeurDescription du message
QDBusMessage::MethodCallMessage1un message représentant un appel de méthode sortant ou entrant
QDBusMessage::SignalMessage4un message représentant une émission de signal sortant ou entrant
QDBusMessage::ReplyMessage2un message représentant les valeurs de retour d'un appel de méthode
QDBusMessage::ErrorMessage3un message représentant une condition d'erreur en réponse à un appel de méthode
QDBusMessage::InvalidMessage0un message invalide : ce message n'est jamais défini pour les messages reçus de D-Bus.

Documentation des fonctions membres

QDBusMessage::QDBusMessage()

Construit un objet QDBusMessage vide et invalide.

Voir aussi createError(), createMethodCall() et createSignal().

QDBusMessage::QDBusMessage(const QDBusMessage &other)

Construit une copie de l'objet donné par other.

Remarque : les objets QDBusMessage sont partagés. Les modifications apportées à la copie affecteront également l'objet original. Voir setDelayedReply() pour plus d'informations.

[noexcept, since 6.11] QDBusMessage::QDBusMessage(QDBusMessage &&other)

Déplace other dans cet objet.

Remarque : l'objet déplacé other est placé dans un état partiellement formé, dans lequel les seules opérations valables sont la destruction et l'attribution d'une nouvelle valeur.

Cette fonction a été introduite dans Qt 6.11.

[noexcept] QDBusMessage::~QDBusMessage()

Se débarrasse de l'objet et libère toutes les ressources qui étaient détenues.

QList<QVariant> QDBusMessage::arguments() const

Renvoie la liste des arguments qui vont être envoyés ou qui ont été reçus de D-Bus.

Voir aussi setArguments().

bool QDBusMessage::autoStartService() const

Renvoie l'indicateur de démarrage automatique, tel que défini par setAutoStartService(). Par défaut, ce drapeau vaut true, ce qui signifie que Qt D-Bus démarrera automatiquement un service s'il n'est pas déjà en cours d'exécution.

Voir aussi setAutoStartService().

[static] QDBusMessage QDBusMessage::createError(const QDBusError &error)

Construit un nouveau message DBus représentant l'adresse error.

[static] QDBusMessage QDBusMessage::createError(QDBusError::ErrorType type, const QString &msg)

Construit un nouveau message DBus pour le type d'erreur type en utilisant le message msg. Retourne le message DBus.

[static] QDBusMessage QDBusMessage::createError(const QString &name, const QString &msg)

Construit un nouveau message DBus représentant une erreur, avec les données name et msg.

QDBusMessage QDBusMessage::createErrorReply(const QDBusError &error) const

Construit un nouveau message DBus représentant un message de réponse d'erreur, à partir de l'objet error donné.

QDBusMessage QDBusMessage::createErrorReply(QDBusError::ErrorType type, const QString &msg) const

Construit un nouveau message de réponse DBus pour le type d'erreur type en utilisant le message msg. Retourne le message DBus.

QDBusMessage QDBusMessage::createErrorReply(const QString &name, const QString &msg) const

Construit un nouveau message DBus représentant un message de réponse d'erreur, avec les adresses name et msg.

[static] QDBusMessage QDBusMessage::createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)

Construit un nouveau message DBus représentant un appel de méthode. Un appel de méthode informe toujours de 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. Toutefois, 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 pair-à-pair (c'est-à-dire pas sur un bus), le paramètre service est facultatif.

La classe QDBusInterface fournit une abstraction plus simple pour l'appel de méthodes synchrones.

Cette fonction renvoie un objet QDBusMessage qui peut être envoyé avec QDBusConnection::call().

QDBusMessage QDBusMessage::createReply(const QList<QVariant> &arguments = QList<QVariant>()) const

Construit un nouveau message DBus représentant une réponse, avec l'adresse arguments.

QDBusMessage QDBusMessage::createReply(const QVariant &argument) const

Construit un nouveau message DBus représentant une réponse, avec l'adresse argument.

[static] QDBusMessage QDBusMessage::createSignal(const QString &path, const QString &interface, const QString &name)

Construit un nouveau message DBus avec les données path, interface et name, 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 à partir de 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)

Construit un nouveau message DBus avec les données path, interface et name, 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 qui possède le nom de la 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'homme associé à l'erreur reçue.

QString QDBusMessage::errorName() const

Renvoie le nom de l'erreur reçue.

QString QDBusMessage::interface() const

Renvoie l'interface de la méthode appelée (dans le cas d'un appel de méthode) ou du signal reçu.

bool QDBusMessage::isDelayedReply() const

Renvoie l'indicateur de réponse différée, tel que défini par setDelayedReply(). Par défaut, cet indicateur est faux, ce qui signifie que Qt D-Bus génère des réponses automatiques lorsque cela est nécessaire.

bool QDBusMessage::isInteractiveAuthorizationAllowed() const

Retourne si le message a le drapeau ALLOW_INTERACTIVE_AUTHORIZATION activé.

Voir aussi setInteractiveAuthorizationAllowed() et QDBusAbstractInterface::isInteractiveAuthorizationAllowed().

bool QDBusMessage::isReplyRequired() const

Renvoie le drapeau qui indique si ce message doit recevoir une réponse ou non. Cette fonction n'est utile que pour method call messages: tout autre type de message ne peut pas recevoir de réponse et cette fonction renverra toujours false.

QString QDBusMessage::member() const

Renvoie le nom du signal qui a été émis ou le nom de la méthode qui a été appelée.

QString QDBusMessage::path() const

Renvoie le chemin de l'objet auquel ce message est envoyé (dans le cas d'un appel de méthode) ou duquel il est reçu (pour un signal).

QString QDBusMessage::service() const

Renvoie le nom du service ou l'adresse du bus de l'appel de la méthode distante.

void QDBusMessage::setArguments(const QList<QVariant> &arguments)

Définit les arguments qui seront envoyés par D-Bus à arguments. Il s'agira des arguments d'un appel de méthode ou des paramètres d'un signal.

Notez que QVariantMap avec QVariant invalide comme valeur n'est pas autorisé dans arguments.

Voir aussi arguments().

void QDBusMessage::setAutoStartService(bool enable)

Fixe l'indicateur de démarrage automatique à enable. Cet indicateur n'a de sens que pour les messages d'appel de méthode, où il indique au serveur D-Bus de démarrer automatiquement le service responsable du nom du service, ou de ne pas le démarrer automatiquement.

Par défaut, cet indicateur est vrai, c'est-à-dire qu'un service est démarré automatiquement. Cela signifie que :

Lorsque le service auquel cet appel de méthode est envoyé est déjà en cours d'exécution, l'appel de méthode lui est envoyé. Si le service n'est pas encore en cours d'exécution, il est demandé au démon D-Bus de démarrer automatiquement le service associé à ce nom de service. Pour ce faire, des fichiers .service sont placés dans un répertoire connu du serveur D-Bus. Ces fichiers contiennent chacun 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 aussi autoStartService().

void QDBusMessage::setDelayedReply(bool enable) const

Définit si le message recevra une réponse ultérieurement (si enable est vrai) ou si une réponse automatique doit être générée par Qt D-Bus (si enable est faux).

Dans D-Bus, tous les appels de méthode doivent générer une réponse à l'appelant, à moins que celui-ci n'indique explicitement le contraire (voir isReplyRequired()). QtDBus génère automatiquement de telles réponses pour tous les slots appelés, mais il permet également aux slots d'indiquer s'ils prendront la responsabilité d'envoyer la réponse ultérieurement, après que la fonction ait terminé son traitement.

Voir également isDelayedReply() et Delayed Replies.

void QDBusMessage::setInteractiveAuthorizationAllowed(bool enable)

Active ou désactive l'indicateur 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 indique à l'appelant que l'appelant de la méthode est prêt à attendre que l'autorisation interactive ait lieu (par exemple via Polkit) avant que la méthode ne soit traitée.

Si enable vaut false, l'indicateur n'est pas activé, ce qui signifie que l'autre extrémité est censée prendre les décisions d'autorisation de manière non interactive et rapide. Il s'agit de la valeur par défaut.

L'erreur org.freedesktop.DBus.Error.InteractiveAuthorizationRequired indique que l'autorisation a échoué, mais qu'elle aurait pu réussir si cet indicateur avait été activé.

Voir aussi isInteractiveAuthorizationAllowed() et QDBusAbstractInterface::setInteractiveAuthorizationAllowed().

QString QDBusMessage::signature() const

Renvoie la signature du signal reçu ou des arguments de sortie d'un appel de méthode.

[noexcept] void QDBusMessage::swap(QDBusMessage &other)

Remplace ce message par other. Cette opération est très rapide et n'échoue jamais.

QDBusMessage::MessageType QDBusMessage::type() const

Renvoie le type de message.

QDBusMessage &QDBusMessage::operator<<(const QVariant &arg)

Ajoute l'argument arg à la liste des arguments à envoyer via D-Bus dans un appel de méthode ou une émission de signal.

[noexcept] QDBusMessage &QDBusMessage::operator=(QDBusMessage &&other)

Move-assigns other into this object.

Note : L'objet déplacé other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'attribution d'une nouvelle valeur.

QDBusMessage &QDBusMessage::operator=(const QDBusMessage &other)

Copie le contenu de l'objet donné par other.

Remarque : les objets QDBusMessage sont partagés. Les modifications apportées à la copie affecteront également l'objet 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.