Qt Protobuf Getters mutables
Les messages Qt Protobuf générés permettent d'accéder aux champs d'un type de message à l'aide de getters mutables. Les getters ont le préfixe mut et renvoient une référence non-const au champ.
message Point {
double x = 1;
double y = 2;
}
message Line {
Point start = 1;
Point end = 2;
}Le schéma .proto ci-dessus génère le code suivant pour le message Line:
class Line : public QProtobufMessage { const Point &start() const &; Point &mutStart() &; ... const Point &end() const &; Point &mutEnd() &; ... }
Pour les champs start et end, le générateur qtprotobufgen crée des getters mutables supplémentaires : mutStart et mutEnd. Utilisez ces getters pour modifier les champs directement, sans créer de messages intermédiaires :
Line line ;// Définition du point de départ de la ligne à (5.0, 5.0)line.mutStart().setX(5.0) ; line.mutStart().setY(5.0) ;// Définition du point d'arrivée de la ligne à (10.0, 20.0)line.mutEnd().setX(10.0) ; line.mutEnd().setY(20.0) ;// Affichage des données de la ligne.qDebug().nospace() << "start: (" << line.start().x() << "," << line.start().y() << ") " " end : ("<< line.end().x()<< ","<< line.end().y()<< ")";
L'appel aux getters mutables effectue toute allocation de champ nécessaire et vous permet de modifier directement les données sous-jacentes.
Attention : Les getters mutables ajoutent un préfixe mut aux noms des champs. Si un message contient des champs nommés field et mutField, un conflit de noms se produit. Ce scénario n'est actuellement pas pris en charge et entraînera une erreur du générateur.
© 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.