Sur cette page

QProtobufMessage Class

Classe de base pour tous les messages Protobuf. En savoir plus...

En-tête : #include <QProtobufMessage>
CMake : find_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)
Depuis : Qt 6.5
Hérité par :

QtProtobuf::Any

Fonctions publiques

(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

Membres publics statiques

QProtobufMessagePointer constructByName(const QString &messageType)

Fonctions protégées

QProtobufMessage(QProtobufMessage &&other)
QProtobufMessagePointer
(since 6.11) To qprotobufmessage_cast(QProtobufMessage *from)
(since 6.11) To qprotobufmessage_cast(const QProtobufMessage *from)

Description détaillée

Permet d'accéder aux propriétés d'un message à l'aide des méthodes setProperty() et property(), sans dépendre de la nature du message.

Documentation sur les fonctions membres

[constexpr noexcept protected default] QProtobufMessage::QProtobufMessage(QProtobufMessage &&other)

Crée par « move » une instance de ` QProtobufMessage`.

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

Construit ` QProtobufMessage ` à l'aide de ` messageType`. Renvoie un pointeur vers l'objet ` QProtobufMessage` ainsi construit.

Cette fonction tente de créer un message dont le type correspond à messageType. Si messageType est inconnu, la fonction renvoie nullptr. Si le message n’est pas trouvé dans le registre, la fonction renvoie nullptr. L’appelant de la fonction se voit attribuer la propriété du message construit.

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

Désérialise ce message Protobuf à partir d'un fichier QByteArray data à l'aide de serializer. Renvoie true si la désérialisation a réussi, sinon false.

Cette fonction a été introduite dans Qt 6.8.

Voir également serialize().

QVariant QProtobufMessage::property(QAnyStringView propertyName) const

Récupérer la valeur de la propriété « propertyName ».

Si la valeur de propertyName n'est pas connue, la valeur renvoyée par QVariant n'est pas valide.

Voir également setProperty().

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

Renvoie le pointeur vers l'ordre des propriétés du message Protobuf dérivé.

Cette fonction a été introduite dans Qt 6.8.

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

Sérialise ce message Protobuf en un objet « QByteArray » à l'aide de serializer.

Cette fonction a été introduite dans Qt 6.8.

Voir également deserialize().

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

Définissez la propriété « propertyName » sur la valeur stockée dans « value ».

Si « propertyName » n'est pas un champ connu, la valeur est ignorée et la fonction renvoie « false ».

Renvoie ` false ` si l’enregistrement de ` value ` dans la propriété échoue. Sinon, ` true`.

Voir également property().

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

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.6.

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

Renvoie les valeurs inconnues de l'field, triées dans l'ordre où elles ont été reçues par le réseau.

Cette fonction a été introduite dans Qt 6.7.

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

Renvoie les numéros de champs qui n'étaient pas connus de ` QtProtobuf ` lors de la désérialisation.

Cette fonction a été introduite dans Qt 6.7.

Éléments non membres associés

[alias] QProtobufMessagePointer

Synonyme de `std::unique_ptr<QProtobufMessage, QProtobufMessageDeleter>`. Utilisez-le pour gérer la durée de vie des objets `QProtobufMessage` alloués dynamiquement, tels que ceux créés en appelant ` 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)

Renvoie l'objet ` from ` donné converti en pointeur de type ` To ` si l'objet est de type ` To ` (ou d'une sous-classe) ; sinon, renvoie ` nullptr`. Si ` from ` est ` nullptr`, cette fonction renvoie également ` nullptr`.

L'argument de modèle To doit être un pointeur vers une classe héritant de QProtobufMessage et déclarée avec la macro Q_PROTOBUF_OBJECT.

Exemple :

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

Cette fonction se comporte de manière similaire à la fonction standard C++ dynamic_cast(), avec l’avantage de ne pas nécessiter la prise en charge de RTTI et de fonctionner au-delà des limites des bibliothèques dynamiques.

Avertissement : si le type pointé par ` To ` n'est pas déclaré avec la macro ` Q_PROTOBUF_OBJECT `, la valeur de retour de cette fonction est indéfinie.

Ces fonctions ont été introduites dans 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.