Protobuf Qt Core Types Module
Permet d'utiliser les types natifs d'Qt Core s dans Protobuf. En savoir plus...
Ce module a été introduit dans Qt 6.6.
Description détaillée
Qt::ProtobufQtCoreTypes est une bibliothèque contenant des messages protobuf prédéfinis, conçue pour encapsuler une sélection de types d'Qt Core.
Liste des types d'Qt Core s pris en charge :
- QByteArray
Remarque : le type correspond au type protobuf en octets.
- QChar
- QDate
- QTimeZone
- QDateTime
- QPoint
- QPointF
- QRect
- QRectF
- QSize
- QSizeF
- QString
Remarque : le type correspond au type « string » de Protobuf.
- QTime
- QUrl
- QUuid
- QVersionNumber
Qt Core Utilisation
Pour activer la prise en charge des types « Qt Core », ajoutez ProtobufQtCoreTypes en tant que dépendance à votre projet CMake :
...
find_package(Qt REQUIRED COMPONENTS Protobuf ProtobufQtCoreTypes)
... # After target creation
target_link_libraries(${TARGET} PRIVATE Qt::ProtobufQtCoreTypes)Avant toute sérialisation ou désérialisation de messages utilisant des types Qt Core comme champs, appelez la méthode d’enregistrement :
// e.g. in main.cpp
QtProtobuf::qRegisterProtobufQtCoreTypes();
...Tous les messages pris en charge sont décrits dans un fichier .proto spécifique, QtCore.proto, qui décrit les types Qt issus du module Qt Core.
Vous pouvez également utiliser ce fichier pour générer du code pour d’autres langages ou frameworks.
Importez le module de types Qt Core requis dans votre fichier .proto d’interface. Par exemple :
syntax = "proto3";
package project.module.component;
import "QtCore/QtCore.proto";
message QUrlMessage {
QtCore.QUrl url = 1;
}Le générateur Qt Protobuf détecte les types ` Qt Core `, fournis par le paquet ProtobufQtCoreTypes, et les utilise directement. Cela vous offre la flexibilité d’utiliser ces types sans conversion supplémentaire.
Dans CMake, vous pouvez extraire le chemin d’inclusion proto de la bibliothèque à l’aide de la propriété de cible « QT_PROTO_INCLUDES » :
qt_add_protobuf(MyProtoLib
PROTO_FILES
MyQtCoreTypesUsage.proto
PROTO_INCLUDES
$<TARGET_PROPERTY:Qt::ProtobufQtCoreTypes,QT_PROTO_INCLUDES>
)© 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.