Auf dieser Seite

Protobuf Qt Core Types Module

Bietet Unterstützung für die Verwendung nativer „ Qt Core “-Typen in Protobuf. Mehr dazu...

Dieses Modul wurde in Qt 6.6 eingeführt.

Ausführliche Beschreibung

Qt::ProtobufQtCoreTypes ist eine Bibliothek mit vordefinierten Protobuf-Nachrichten, die dazu dient, eine Auswahl von „ Qt Core “-Typen zu kapseln.

Liste der unterstützten „ Qt Core “-Typen:

Qt Core Verwendung

Um die Unterstützung für „ Qt Core “-Typen zu aktivieren, fügen Sie „ProtobufQtCoreTypes“ als Abhängigkeit zu Ihrem CMake-Projekt hinzu:

...
find_package(Qt REQUIRED COMPONENTS Protobuf ProtobufQtCoreTypes)
... # After target creation
target_link_libraries(${TARGET} PRIVATE Qt::ProtobufQtCoreTypes)

Rufen Sie vor jeder Serialisierung oder Deserialisierung von Nachrichten, die „ Qt Core “-Typen als Felder verwenden, die Registrierungsmethode auf:

// e.g. in main.cpp
QtProtobuf::qRegisterProtobufQtCoreTypes();
...

Alle unterstützten Nachrichten sind in einer speziellen .proto-Datei beschrieben, „QtCore.proto“, die Qt-Typen aus dem Modul „ Qt Core “ definiert.

Sie können die Datei auch verwenden, um Code für andere Sprachen oder Frameworks zu generieren.

Importieren Sie das erforderliche Modul „ Qt Core types“ in Ihre Schnittstellen-„.proto“-Datei. Beispiel:

syntax = "proto3";

package project.module.component;

import "QtCore/QtCore.proto";

message QUrlMessage {
    QtCore.QUrl url = 1;
}

Der Qt Protobuf -Generator erkennt die vom Paket „ProtobufQtCoreTypes“ bereitgestellten „ Qt Core “-Typen und verwendet sie direkt. Dies gibt Ihnen die Flexibilität, diese Typen ohne zusätzliche Konvertierung zu verwenden.

In CMake können Sie den Proto-Include-Pfad mithilfe der Ziel-Eigenschaft „ QT_PROTO_INCLUDES “ aus der Bibliothek extrahieren:

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.