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 :
| Constante | Valeur | Description du message |
|---|---|---|
QDBusMessage::MethodCallMessage | 1 | un message représentant un appel de méthode sortant ou entrant |
QDBusMessage::SignalMessage | 4 | un message représentant une émission de 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 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.