Qt Protobuf Well-Known Types C++ Classes
Qt Protobuf Well-Known Types モジュールは、Well-Known Typesパッケージで利用可能な型の一部をサポートしている。詳細...
このモジュールは Qt 6.6 で導入されました。
クラス
protobuf Any 型を簡単に扱うためのヘルパークラスです。 |
詳細説明
QtProtobufWellKnownTypes には、以下のProtobuf Well-Known 型が含まれています:サポートされている型
- Any(メッセージ)
- Api(メッセージ)
- BoolValue(メッセージ)
- BytesValue(メッセージ)
- DoubleValue(メッセージ)
- Duration(メッセージ)
- Empty(メッセージ)
- Enum(メッセージ)
- EnumValue(メッセージ)
- Field(メッセージ)
- フィールド.カーディナリティ(enum)
- Field.Kind(enum)
- FieldMask(メッセージ)
- FloatValue(メッセージ)
- Int32Value(メッセージ)
- Int64Value(メッセージ)
- ListValue(メッセージ)
- メソッド(メッセージ)
- Mixin(メッセージ)
- NullValue(enum)
- Option(メッセージ)
- ソースコンテキスト(メッセージ)
- 文字列値(メッセージ)
- 構造体(メッセージ)
- 構文(enum)
- タイムスタンプ(メッセージ)
- 型(メッセージ)
- UInt32Value(メッセージ)
- UInt64Value(メッセージ)
- 値(メッセージ)
ProtobufWellKnownTypesライブラリの使用
プロジェクトでよく知られている型を使用するには、対応するgoogle .protoファイルをインターフェイスに含めることができます:
syntax = "proto3";
package somepackage;
import "google/protobuf/any.proto";
message Message {
google.protobuf.Any payload = 1;
}記載されている型を使用するには、CMakeLists.txtファイルに以下の行を追加して、ProtobufWellKnownTypes ライブラリとリンクする必要があります:
target_link_libraries(YourTargetName PRIVATE Qt::ProtobufWellKnownTypes)
ProtobufWellKnownTypesのQMLサポートの追加
ProtobufWellKnownTypesライブラリはQMLサポートを提供していません。このサポートは将来のリリースで実装される予定ですが、今のところ、Qt Protobuf のよく知られた型をQML互換の型に拡張することができます。例えば、EmptyはRPCメソッドの入出力としてよく使われます。以下を参照してください:
syntax = "proto3";
package qtgrpc.examples;
import "google/protobuf/empty.proto";
service ExampleService {
rpc emptyMethod(google.protobuf.Empty) returns (google.protobuf.Empty) {}
}QML からemptyMethod を呼び出すには、プロジェクトのヘッダファイル.h に以下のコードを追加してgoogle.protobuf.Empty 型を宣言します:
#include "google/protobuf/empty.qpb.h"
struct GoogleProtobufAPI
{
Q_GADGET
QML_FOREIGN(google::protobuf::Empty)
QML_STRUCTURED_VALUE
QML_VALUE_TYPE(protobufEmpty)
};その後、QMLの中でprotobufEmpty 。以下の例を参照してください:
import qtgrpc.examples
import QtQuick
import QtGrpc
Item {
id: root
property protobufEmpty value: null
ServiceClient {
id: grpcClient
channel: grpcChannel.channel
}
Item {
Component.onCompleted: {
grpcClient.emptyMethod(value, messageCallback, errorCallback, grpcCallOptions);
}
}
}QML_STRUCTURED_VALUE マクロもこの構文を有効にしています:
Component.onCompleted: {
grpcClient.emptyMethod({}, messageCallback, errorCallback, grpcCallOptions);
}QML_VALUE_TYPE およびQML_STRUCTURED_VALUEも参照して ください。
© 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.