Protobuf Qt GUI 类型模块
提供在 protobuf 中使用原生 Qt Gui 类型的支持。更多...
此模块处于 技术预览 状态。
此模块自 Qt 6.6 开始引入。
详细描述
Qt::ProtobufQtGuiTypes 是一个具有预定义 protobuf 消息的库,用于封装一系列 Qt Gui 类型。
支持的 Qt Gui 类型列表
Qt GUI 使用
要启用 Qt GUI 类型支持,将 ProtobufQtGuiTypes 添加为 CMake 项目的依赖项
... find_package(Qt REQUIRED COMPONENTS Protobuf ProtobufQtGuiTypes) ... # After target creation target_link_libraries(${TARGET} PRIVATE Qt::ProtobufQtGuiTypes)
在序列化或反序列化使用 Qt GUI 类型作为字段的消息之前,调用注册方法
// e.g. in main.cpp QtProtobuf::qRegisterProtobufQtGuiTypes(); ...
所有支持的消息都描述在一个特殊的 .proto 文件中,即 QtGui.proto,它描述了 Qt GUI 模块中的 Qt 类型。
您也可以使用该文件为其他语言或框架生成代码。
在您的接口 .proto 文件中导入所需的 Qt GUI 类型模块。例如
syntax = "proto3"; package project.module.component; import "QtGui/QtGui.proto"; message QMatrix4x4Message { QtGui.QMatrix4x4 matrix = 1; }
Qt Protobuf 生成器检测到由 ProtobufQtGuiTypes 包提供的 Qt GUI 类型,并直接使用它们。这为您提供了使用这些类型而不需要额外转换的灵活性。
QImage 序列化
ProtobufQtGuiTypes 库提供了与 QImage 类工作的可能性。通常,库将所有 QImage 对象转换为 PNG
格式。但如果 QImage 使用 https://doc.qt.ac.cn/qt-6/qimage.html#Format-enum 的 {浮点格式} 创建,则转换为 PNG
会导致数据丢失。为了避免数据丢失,如果系统支持,库会自动将图像文件转换为 TIFF
格式,否则转换为 PNG
。
注意:如果您不希望使用 TIFF
,则需要将图像显式转换为非浮点格式。
© 2024 The Qt Company Ltd. 本文档中包含的文档贡献copyright为各自的拥有者。本文档是根据 Free Software Foundation 发布的 GNU 自由文档许可协议版本 1.3 的条款发布的。Qt 和相应的标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标都是其各自拥有者的财产。