En esta página

QProtobufMessage Class

Clase base para todos los mensajes protobuf. Más...

Cabecera: #include <QProtobufMessage>
CMake: find_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)
Desde: Qt 6.5
Heredado por:

QtProtobuf::Any

Funciones Públicas

(since 6.8) bool deserialize(QAbstractProtobufSerializer *serializer, QByteArrayView data)
QVariant property(QAnyStringView propertyName) const
(since 6.8) const QtProtobufPrivate::QProtobufPropertyOrdering *propertyOrdering() const
(since 6.8) QByteArray serialize(QAbstractProtobufSerializer *serializer) const
bool setProperty(QAnyStringView propertyName, const QVariant &value)
(since 6.6) bool setProperty(QAnyStringView propertyName, QVariant &&value)
(since 6.7) QList<QByteArray> unknownFieldData(qint32 field) const
(since 6.7) QList<qint32> unknownFieldNumbers() const

Miembros públicos estáticos

QProtobufMessagePointer constructByName(const QString &messageType)
QProtobufMessagePointer
(since 6.11) To qprotobufmessage_cast(QProtobufMessage *from)
(since 6.11) To qprotobufmessage_cast(const QProtobufMessage *from)

Descripción detallada

Proporciona acceso a las propiedades de un mensaje, utilizando setProperty() y property(), sin depender de lo que sea el mensaje.

Documentación de las funciones miembro

[static] QProtobufMessagePointer QProtobufMessage::constructByName(const QString &messageType)

Construye QProtobufMessage utilizando messageType. Devuelve un puntero al mensaje construido QProtobufMessage.

Esta función intenta crear un mensaje con un tipo que coincida con messageType. Si messageType es desconocido, la función devuelve nullptr. Si el mensaje no se encuentra en el registro, la función devuelve nullptr. La persona que llama a la función recibe la propiedad del mensaje construido.

[since 6.8] bool QProtobufMessage::deserialize(QAbstractProtobufSerializer *serializer, QByteArrayView data)

Deserializa este mensaje protobuf desde un QByteArray data utilizando serializer. Devuelve true si la deserialización se ha realizado correctamente, en caso contrario false.

Esta función se introdujo en Qt 6.8.

Véase también serialize().

QVariant QProtobufMessage::property(QAnyStringView propertyName) const

Obtiene el valor de la propiedad propertyName.

Si el propertyName no es conocido entonces el QVariant devuelto no es válido.

Véase también setProperty().

[since 6.8] const QtProtobufPrivate::QProtobufPropertyOrdering *QProtobufMessage::propertyOrdering() const

Devuelve el puntero a la ordenación de propiedades del mensaje protobuf derivado.

Esta función se introdujo en Qt 6.8.

[since 6.8] QByteArray QProtobufMessage::serialize(QAbstractProtobufSerializer *serializer) const

Serializa este mensaje protobuf en un QByteArray usando serializer.

Esta función se introdujo en Qt 6.8.

Véase también deserialize().

bool QProtobufMessage::setProperty(QAnyStringView propertyName, const QVariant &value)

Establece la propiedad propertyName al valor almacenado en value.

Si propertyName no es un campo conocido, se ignora el valor y la función devuelve false.

Devuelve false si no consigue almacenar el value en la propiedad. En caso contrario true.

Véase también property().

[since 6.6] bool QProtobufMessage::setProperty(QAnyStringView propertyName, QVariant &&value)

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.6.

[since 6.7] QList<QByteArray> QProtobufMessage::unknownFieldData(qint32 field) const

Devuelve los valores desconocidos de field ordenados como se recibieron del cable.

Esta función se introdujo en Qt 6.7.

[since 6.7] QList<qint32> QProtobufMessage::unknownFieldNumbers() const

Devuelve los números de campo que no eran conocidos por QtProtobuf durante la deserialización.

Esta función se introdujo en Qt 6.7.

No miembros relacionados

[alias] QProtobufMessagePointer

Sinónimo de std::unique_ptr<QProtobufMessage, QProtobufMessageDeleter>. Se utiliza para gestionar el tiempo de vida de QProtobufMessages asignados dinámicamente, como los creados al llamar a QProtobufMessage::constructByName.

[since 6.11] template <typename To> To qprotobufmessage_cast(QProtobufMessage *from)

[since 6.11] template <typename To> To qprotobufmessage_cast(const QProtobufMessage *from)

Devuelve el objeto from dado convertido al tipo de puntero To si el objeto es del tipo To (o una subclase); en caso contrario devuelve nullptr. Si from es nullptr, esta función también devuelve nullptr.

El argumento de plantilla To debe ser un puntero a una clase que herede de QProtobufMessage y esté declarada con la macro Q_PROTOBUF_OBJECT.

Ejemplo:

QProtobufMessage *message = new myproject::MySpecificMessage();

// Cast to its own type (success)
auto *specific = qprotobufmessage_cast<myproject::MySpecificMessage *>(message);
// specific is a valid pointer

// Cast to an unrelated type (failure)
auto *another = qprotobufmessage_cast<myproject::AnotherMessage *>(message);
// another is nullptr

Esta función se comporta de forma similar a la estándar de C++ dynamic_cast(), con las ventajas de que no requiere soporte RTTI y funciona a través de los límites de las bibliotecas dinámicas.

Advertencia: Si el tipo apuntado por To no se declara con la macro Q_PROTOBUF_OBJECT, el valor de retorno de esta función es indefinido.

Estas funciones se introdujeron en Qt 6.11.

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