Sur cette page

Protobuf Qt Core Types Module

Prend en charge l'utilisation des types natifs Qt Core dans la protobuf. Plus d'informations...

Ce module a été introduit dans Qt 6.6.

Description détaillée

Qt::ProtobufQtCoreTypes est une bibliothèque de messages protobuf prédéfinis conçus pour encapsuler une sélection de types Qt Core.

Liste des types Qt Core pris en charge :

Qt Core utilisation

Pour activer le support des types Qt Core, ajoutez ProtobufQtCoreTypes comme 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 les 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écial, QtCore.proto, qui décrit les types Qt 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 Qt Core types requis dans votre fichier .proto d'interface. Par exemple, le générateur détecte le module dans le fichier .proto de votre interface :

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 donne la possibilité 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é QT_PROTO_INCLUDES target :

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.