Qt Protobuf Veränderliche Getter
Die generierten Qt Protobuf Nachrichten erlauben den Zugriff auf die Felder eines Nachrichtentyps über veränderbare Getter. Die Getter haben das Präfix mut
und geben eine nicht-konstante Referenz auf das Feld zurück.
message Point { double x = 1; double y = 2; } message Line { Point start = 1; Point end = 2; }
Das obige Schema .proto
erzeugt den folgenden Code für die Nachricht Line
:
class Line : public QProtobufMessage { const Point &start() const &; Point &mutStart() &; ... const Point &end() const &; Point &mutEnd() &; ... }
Für die Felder start
und end
erzeugt der qtprotobufgen-Generator zusätzliche veränderbare Getter: mutStart
und mutEnd
. Verwenden Sie diese Getter, um Felder direkt zu ändern, ohne Zwischennachrichten zu erstellen:
Line line;// Setzen des Zeilenanfangspunkts auf (5.0, 5.0)line.mutStart().setX(5.0); line.mutStart().setY(5.0);// Setzen des Zeilenendpunkts auf (10.0, 20.0)line.mutEnd().setX(10.0); line.mutEnd().setY(20.0);// Anzeigen der Line-DatenqDebug().nospace() << "start: (" << line.start().x() << "," << line.start().y() << ") " "Ende: ("<< line.end().x()<< ","<< line.end().y()<< ")";
Der Aufruf der mutable getters führt alle notwendigen Feldzuweisungen durch und ermöglicht es Ihnen, die zugrunde liegenden Daten direkt zu ändern.
Warnung! Mutable Getters fügen ein mut
Präfix zu den Feldnamen hinzu. Wenn eine Nachricht Felder mit den Namen field
und mutField
enthält, kommt es zu einem Benennungskonflikt. Dieses Szenario wird derzeit nicht unterstützt und führt zu einem Generatorfehler.
© 2025 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.