En esta página

Protobuf Qt GUI Types Module

Proporciona soporte para usar tipos nativos de Qt GUI en protobuf. Más...

Este módulo se introdujo en Qt 6.6.

Descripción detallada

Qt::ProtobufQtGuiTypes es una librería con mensajes protobuf predefinidos diseñada para encapsular una selección de tipos Qt Gui.

Lista de tipos Qt GUI soportados:

Qt GUI uso

Para habilitar el soporte de tipos Qt GUI, añade ProtobufQtGuiTypes como dependencia a tu proyecto CMake:

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

Antes de cualquier serialización o deserialización de mensajes que utilicen tipos Qt GUI como campos, llame al método de registro:

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

Todos los mensajes compatibles se describen en un archivo .proto especial, QtGui.proto, que describe los tipos Qt del módulo Qt GUI.

También puedes utilizar el archivo para generar código para otros lenguajes o frameworks.

Importe el módulo de tipos Qt GUI requerido en su archivo .proto de interfaz Por ejemplo:

syntax = "proto3";

package project.module.component;

import "QtGui/QtGui.proto";

message QMatrix4x4Message {
    QtGui.QMatrix4x4 matrix = 1;
}

El generador Qt Protobuf detecta los tipos Qt GUI, suministrados por el paquete ProtobufQtGuiTypes, y los utiliza directamente. Esto te da la flexibilidad de usar estos tipos sin conversión adicional.

En CMake, puedes extraer la ruta proto include de la librería usando la propiedad QT_PROTO_INCLUDES target:

qt_add_protobuf(MyProtoLib
    PROTO_FILES
        MyQtGuiTypesUsage.proto
    PROTO_INCLUDES
        $<TARGET_PROPERTY:Qt::ProtobufQtGuiTypes,QT_PROTO_INCLUDES>
)

Serialización QImage

La librería ProtobufQtGuiTypes ofrece la posibilidad de trabajar con la clase QImage. Normalmente, la librería convierte todos los objetos QImage al formato PNG. Pero si el QImage fue creado usando uno de los formatos de punto flotante de QImage::Format, entonces la conversión a PNG conducirá a la pérdida de datos. Para evitar la pérdida de datos, la biblioteca convierte automáticamente el archivo de imagen al formato TIFF, si el sistema lo admite; de lo contrario, lo convierte a PNG.

Nota: si no desea utilizar TIFF, deberá convertir la imagen explícitamente a un formato que no sea de coma flotante.

© 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.