En esta página

QDBusMessage Class

La clase QDBusMessage representa un mensaje enviado o recibido a través del bus D-Bus. Más...

Cabecera: #include <QDBusMessage>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus

Tipos Públicos

enum MessageType { MethodCallMessage, SignalMessage, ReplyMessage, ErrorMessage, InvalidMessage }

Funciones públicas

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)

Miembros públicos estáticos

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)

Descripción detallada

Este objeto puede representar cualquiera de los cuatro tipos diferentes de mensajes (MessageType) que pueden producirse en el bus:

  • Llamadas a métodos
  • Valores de retorno de métodos
  • Emisiones de señales
  • Códigos de error

Los objetos de este tipo se crean con las funciones estáticas createError(), createMethodCall() y createSignal(). Utilice la función QDBusConnection::send() para enviar los mensajes.

Documentación de los tipos de miembros

enum QDBusMessage::MessageType

Los tipos de mensajes posibles:

ConstanteValorDescripción
QDBusMessage::MethodCallMessage1un mensaje que representa una llamada de método saliente o entrante
QDBusMessage::SignalMessage4un mensaje que representa una emisión de señal saliente o entrante
QDBusMessage::ReplyMessage2un mensaje que represente los valores de retorno de una llamada a un método
QDBusMessage::ErrorMessage3un mensaje que representa una condición de error en respuesta a una llamada a un método
QDBusMessage::InvalidMessage0un mensaje no válido: nunca se establece en los mensajes recibidos de D-Bus

Documentación de las funciones miembro

QDBusMessage::QDBusMessage()

Construye un objeto QDBusMessage vacío e inválido.

Véase también createError(), createMethodCall() y createSignal().

QDBusMessage::QDBusMessage(const QDBusMessage &other)

Construye una copia del objeto dado por other.

Nota: Los objetos QDBusMessage son compartidos. Las modificaciones realizadas en la copia afectarán también al original. Véase setDelayedReply() para más información.

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

Mueve other a este objeto.

Nota: El objeto movido-desde other se coloca en un estado parcialmente formado, en el que las únicas operaciones válidas son la destrucción y la asignación de un nuevo valor.

Esta función se introdujo en Qt 6.11.

[noexcept] QDBusMessage::~QDBusMessage()

Elimina el objeto y libera los recursos que estaban retenidos.

QList<QVariant> QDBusMessage::arguments() const

Devuelve la lista de argumentos que van a ser enviados o fueron recibidos de D-Bus.

Véase también setArguments().

bool QDBusMessage::autoStartService() const

Devuelve el indicador de inicio automático, establecido por setAutoStartService(). Por defecto, esta bandera es true, lo que significa que Qt D-Bus autoarrancará un servicio, si no se está ejecutando ya.

Véase también setAutoStartService().

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

Construye un nuevo mensaje DBus que representa la dirección error.

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

Construye un nuevo mensaje DBus para el tipo de error type utilizando el mensaje msg. Devuelve el mensaje DBus.

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

Crea un nuevo mensaje DBus que representa un error, con las direcciones name y msg.

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

Construye un nuevo mensaje DBus que representa un mensaje de respuesta de error, a partir del objeto error dado.

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

Construye un nuevo mensaje de respuesta DBus para el tipo de error type utilizando el mensaje msg. Devuelve el mensaje DBus.

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

Construye un nuevo mensaje DBus que representa un mensaje de respuesta de error, con los datos name y msg.

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

Construye un nuevo mensaje DBus que representa una llamada a método. Una llamada a método siempre informa de su dirección de destino (service, path, interface y method).

El bus DBus permite llamar a un método en un objeto remoto dado sin especificar la interfaz de destino, si el nombre del método es único. Sin embargo, si dos interfaces del objeto remoto exportan el mismo nombre de método, el resultado es indefinido (se puede llamar a uno de los dos o devolver un error).

Cuando se utiliza DBus en un contexto peer-to-peer (es decir, no en un bus), el parámetro service es opcional.

La clase QDBusInterface proporciona una abstracción más sencilla de la llamada a métodos síncronos.

Esta función devuelve un objeto QDBusMessage que puede enviarse con QDBusConnection::call().

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

Construye un nuevo mensaje DBus que representa una respuesta, con la dirección arguments.

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

Construye un nuevo mensaje DBus que representa una respuesta, con la dirección argument.

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

Construye un nuevo mensaje DBus con los datos path, interface y name, que representan una emisión de señal.

Una señal DBus se emite desde una aplicación y es recibida por todas las aplicaciones que están a la escucha de esa señal desde esa interfaz.

El objeto QDBusMessage que se devuelve puede enviarse utilizando la función QDBusConnection::send().

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

Construye un nuevo mensaje DBus con los nombres path, interface y name, que representan una emisión de señal a un destino específico.

Una señal DBus se emite desde una aplicación y sólo la recibe la aplicación propietaria del nombre service de destino.

El objeto QDBusMessage que se devuelve puede enviarse utilizando la función QDBusConnection::send().

QString QDBusMessage::errorMessage() const

Devuelve el mensaje legible por humanos asociado al error recibido.

QString QDBusMessage::errorName() const

Devuelve el nombre del error recibido.

QString QDBusMessage::interface() const

Devuelve la interfaz del método al que se llama (en el caso de una llamada a método) o de la señal de la que se recibe.

bool QDBusMessage::isDelayedReply() const

Devuelve el indicador de respuesta retardada, establecido por setDelayedReply(). Por defecto, esta bandera es falsa, lo que significa que Qt D-Bus generará respuestas automáticas cuando sea necesario.

bool QDBusMessage::isInteractiveAuthorizationAllowed() const

Devuelve si el mensaje tiene activada la bandera ALLOW_INTERACTIVE_AUTHORIZATION.

Véase también setInteractiveAuthorizationAllowed() y QDBusAbstractInterface::isInteractiveAuthorizationAllowed().

bool QDBusMessage::isReplyRequired() const

Devuelve la bandera que indica si este mensaje debe ver una respuesta o no. Esto sólo tiene sentido para method call messages: cualquier otro tipo de mensaje no puede tener respuestas y esta función siempre devolverá false para ellos.

QString QDBusMessage::member() const

Devuelve el nombre de la señal emitida o el nombre del método llamado.

QString QDBusMessage::path() const

Devuelve la ruta del objeto al que se está enviando este mensaje (en el caso de una llamada a un método) o del que se está recibiendo (para una señal).

QString QDBusMessage::service() const

Devuelve el nombre del servicio o la dirección de bus de la llamada al método remoto.

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

Establece los argumentos que van a ser enviados a través del D-Bus a arguments. Estos serán los argumentos de una llamada a método o los parámetros de la señal.

Nótese que QVariantMap con QVariant inválido como valor no está permitido en arguments.

Véase también arguments().

void QDBusMessage::setAutoStartService(bool enable)

Establece el indicador de inicio automático en enable. Este indicador sólo tiene sentido para los mensajes de llamada a método, donde indica al servidor D-Bus que inicie automáticamente el servicio responsable del nombre del servicio o que no lo inicie.

Por defecto esta bandera es verdadera, es decir, un servicio es auto-iniciado. Esto significa que:

Cuando el servicio al que se envía esta llamada al método ya está en ejecución, se le envía la llamada al método. Si el servicio aún no se está ejecutando, se solicita al demonio D-Bus que inicie automáticamente el servicio asignado a este nombre de servicio. Esto se gestiona mediante archivos .service que se colocan en un directorio conocido por el servidor D-Bus. Cada uno de estos archivos contiene un nombre de servicio y la ruta a un programa que debe ejecutarse cuando se solicita este nombre de servicio.

Véase también autoStartService().

void QDBusMessage::setDelayedReply(bool enable) const

Establece si el mensaje se responderá más tarde (si enable es verdadero) o si se debe generar una respuesta automática mediante Qt D-Bus (si enable es falso).

En D-Bus, todas las llamadas a métodos deben generar una respuesta al llamante, a menos que el llamante indique explícitamente lo contrario (véase isReplyRequired()). QtDBus genera automáticamente dichas respuestas para cualquier ranura que esté siendo llamada, pero también permite a las ranuras indicar si asumirán la responsabilidad de enviar la respuesta en un momento posterior, después de que la función haya terminado de procesarse.

Véase también isDelayedReply() y Respuestas diferidas.

void QDBusMessage::setInteractiveAuthorizationAllowed(bool enable)

Activa o desactiva la bandera ALLOW_INTERACTIVE_AUTHORIZATION en un mensaje.

Esta bandera sólo tiene sentido para mensajes de llamada a método (QDBusMessage::MethodCallMessage). Si enable se establece en true, la bandera indica al destinatario de la llamada que la persona que llama al método está preparada para esperar a que se produzca la autorización interactiva (por ejemplo, a través de Polkit) antes de que se procese el método real.

Si enable se establece en false, el indicador no se establece, lo que significa que se espera que el otro extremo tome cualquier decisión de autorización de forma no interactiva y rápida. Este es el valor por defecto.

El error org.freedesktop.DBus.Error.InteractiveAuthorizationRequired indica que la autorización ha fallado, pero podría haber tenido éxito si se hubiera activado este indicador.

Véase también isInteractiveAuthorizationAllowed() y QDBusAbstractInterface::setInteractiveAuthorizationAllowed().

QString QDBusMessage::signature() const

Devuelve la firma de la señal recibida o de los argumentos de salida de una llamada a un método.

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

Intercambia este mensaje con other. Esta operación es muy rápida y nunca falla.

QDBusMessage::MessageType QDBusMessage::type() const

Devuelve el tipo de mensaje.

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

Añade el argumento arg a la lista de argumentos que se enviarán por D-Bus en una llamada a método o emisión de señal.

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

Mover-asigna other a este objeto.

Nota: El objeto movido-desde other se coloca en un estado parcialmente formado, en el que las únicas operaciones válidas son la destrucción y la asignación de un nuevo valor.

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

Copia el contenido del objeto dado por other.

Nota: los objetos de QDBusMessage son compartidos. Las modificaciones realizadas en la copia afectarán también al original. Véase setDelayedReply() para más información.

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