Sur cette page

QProtobufMessage Class

Classe de base pour tous les messages protobuf. Plus d'informations...

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)
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, en utilisant setProperty() et property(), sans dépendre de la nature du message.

Documentation des fonctions membres

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

Construit QProtobufMessage en utilisant messageType. Retourne un pointeur sur le message construit QProtobufMessage.

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 QByteArray data en utilisant serializer. Retourne true si la désérialisation a réussi, sinon false.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi serialize().

QVariant QProtobufMessage::property(QAnyStringView propertyName) const

Obtenir la valeur de la propriété propertyName.

Si l'adresse propertyName n'est pas connue, l'adresse QVariant renvoyée n'est pas valide.

Voir aussi setProperty().

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

Renvoie le pointeur sur 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 QByteArray en utilisant serializer.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi deserialize().

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

Fixer la propriété propertyName à 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 elle ne parvient pas à stocker la valeur value dans la propriété. Sinon, elle renvoie true.

Voir aussi 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 field triées telles qu'elles ont été reçues sur le fil.

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.

Non-membres apparentés

[alias] QProtobufMessagePointer

Synonyme de std::unique_ptr<QProtobufMessage, QProtobufMessageDeleter>. À utiliser pour gérer la durée de vie des QProtobufMessages alloués dynamiquement, tels que ceux créés par l'appel à 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é en tant que pointeur de type To si l'objet est de type To (ou 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 sur une classe qui hérite de QProtobufMessage et qui est 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 le support RTTI et de fonctionner à travers les limites des bibliothèques dynamiques.

Attention : 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.