En esta página

Qt Protobuf

El plugin generador Qt Protobuf genera clases basadas en Qt a partir de archivos .proto. Puedes utilizar las clases para serializar y deserializar sus mensajes protobuf asociados.

Visión general

¿Qué son los buffers de protocolo?

Los búferes de protocolo son un mecanismo de serialización de datos estructurados, compacto y fácil de usar, independiente del lenguaje y de la plataforma:

  • El usuario define la estructura de los datos en archivos .proto.
  • El compilador Proto se invoca en tiempo de compilación en los archivos .proto para generar código en varios lenguajes de programación.

El formato proporcionado es adecuado para el tráfico de red o el almacenamiento de datos a largo plazo.

¿Qué problemas resuelven los búferes de protocolo?

Los búferes de protocolo proporcionan un formato de serialización para paquetes de datos tipificados y estructurados de hasta unos pocos megabytes de tamaño. Permiten ampliarlos con nueva información sin invalidar los datos existentes ni obligar a actualizar el código. Para obtener más información, consulte Descripción general de los búferes de protocolo.

Ventajas de utilizar Qt Protobuf

Puede utilizar un mecanismo de búferes de protocolo en cualquier proyecto basado en Qt:

  • Sin necesidad de llamar explícitamente a un compilador de búferes de protocolo.
  • Sin necesidad de integrar manualmente el código generado en el árbol del proyecto.
  • Para acceder a la API de serialización y deserialización.
  • Para mecanismo de propiedades integrado para mensajes protobuf generados.
  • Para la compatibilidad integrada con gRPC-client, véase el móduloQt GRPC .
  • Para soporte integrado de QML-types para mensajes protobuf generados.
  • Para utilizar Qt Core y Qt GUI como parte del esquema *.proto.

Uso del módulo

Los protocol buffers de Google proporcionan un generador llamado protoc que soporta extensiones. La herramienta qtprotobufgen es una extensión para protoc y requiere que instales protoc en tu sistema anfitrión. Para obtener más información sobre la instalación, consulta Instalación de Protoc.

API QML

Los tipos QML del módulo están disponibles a través de las opciones QML y QML_URI de la macro qt_add_protobuf. El nombre de importación es igual al nombre del paquete .proto o está definido por la opción QML_URI de la macro qt_add_protobuf. Para utilizar los tipos, añada la siguiente sentencia import al archivo .qml:

import my.proto.package.uri

API DE C

Para utilizar la API C++ de un módulo Qt es necesario enlazar con la biblioteca del módulo, ya sea directamente o a través de otras dependencias. Varias herramientas de compilación tienen soporte dedicado para esto, incluyendo CMake y qmake.

Construcción con CMake

Utilice el comando find_package() para localizar el componente del módulo necesario en el paquete Qt6:

find_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)

Para más detalles, consulta la descripción general de la compilación con CMake.

Artículos y guías

Referencias

Ejemplos

Licencias y atribuciones

El módulo Qt Protobuf está disponible bajo licencias comerciales de The Qt Company. Además, está disponible bajo licencias de software libre: La Licencia Pública General Reducida de GNU, versión 3, o la Licencia Pública General de GNU, versión 2, o la Licencia Pública General de GNU, versión 3. Consulte Licencias de Qt para más detalles.

Además, la herramienta qtprotobufgen en Qt 6.11.0 puede contener módulos de terceros bajo las siguientes licencias permisivas:

protobuf, version 21.9

Licencia BSD de 3 cláusulas "Nueva" o "Revisada

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