Sur cette page

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 :

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.