La empresa Qt Company ha publicado la versión del marco Qt 6.6, en la que se continúa el trabajo de estabilización y expansión de la funcionalidad de la rama Qt 6. En Qt 6.6 se ha asegurado el soporte para las plataformas Windows 10+, macOS 11+, Linux (Ubuntu 22.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.6/9.0), iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY y QNX. Los códigos fuente de los componentes de Qt se distribuyen bajo las licencias LGPLv3 y GPLv2.
Cambios principales en Qt 6.6:
- En el módulo Qt Quick se ha implementado soporte experimental para el diseño adaptativo de la interfaz. Para cambiar dinámicamente la disposición de la interfaz según el tamaño de la ventana y para colocar automáticamente los elementos teniendo en cuenta la estructura de la disposición actual, se ha propuesto la clase LayoutItemProxy, y en el módulo Qt Quick Layouts se ha proporcionado la posibilidad de usar tamaños de celdas unificados para diseños con disposición de elementos en una cuadrícula, filas y columnas.

- En Qt Quick se ha agregado soporte para modos de selección (propiedad selectionMode) en el tipo QML TableView (por ejemplo, se puede gestionar la selección de celdas, filas, columnas y conjuntos de celdas), se ha proporcionado la posibilidad de modificar la propiedad rootIndex, en el tipo QML TreeView se ha ampliado la gestión del diseño de las barras de desplazamiento (scroll-deceleration) en el tipo QML Flickable, y se ha implementado la reducción automática de las rutas de archivos. Se ha dado acceso desde QML a la API de gestión de permisos.
- Se ha añadido un módulo experimental Qt Graphs, diseñado para proporcionar un módulo universal para la visualización de grandes colecciones de datos que cambian rápidamente y la creación de diversos tipos de gráficos. El módulo se desarrolla como un reemplazo universal del antiguo módulo Qt DataVisualization, que estaba vinculado a OpenGL, y del módulo Qt Charts. El módulo aún está en desarrollo y actualmente se centra en reproducir la funcionalidad de Qt DataVisualization sobre Qt Quick 3D y en utilizar un nuevo motor de renderizado (RHI, Rendering Hardware Interface), que admite diversas API de 3D (OpenGL, Vulkan, Metal y Direct 3D).

- En el módulo Qt Multimedia se ha agregado la clase QWindowCapture para capturar el contenido de ventanas individuales, complementando la clase QScreenCapture, que apareció en la versión anterior y que está limitada a la captura de toda la pantalla. QWindowCapture permite obtener una lista de ventanas disponibles para captura y puede ser utilizado en aplicaciones para proporcionar acceso compartido a ventanas. La captura de ventanas y pantallas es compatible utilizando el backend de FFmpeg en todas las plataformas, excepto en sistemas que utilizan el protocolo Wayland.
- A la clase QMediaRecorder se le han agregado propiedades para controlar la calidad del video, la resolución y la tasa de bits.
- Se han ampliado las capacidades de los módulos Qt GRPC y Qt Protobuf, que permiten acceder a servicios gRPC y realizar la serialización de clases Qt utilizando el protocolo Protocol Buffer. En Qt GRPC se han añadido nuevas opciones QGrpcChannelOptions y QGrpcCallOptions para facilitar la configuración de canales y llamadas, así como para limitar el tiempo máximo de ejecución de una llamada o flujo. Se ha añadido la opción QGrpcMetadata para establecer metadatos por parte del cliente y leer los metadatos devueltos. el servidor. En Qt GRPC se ha integrado soporte para tipo QML para la generación automática de clases cliente QtGRPC. En Qt Protobuf se permite incluir en el esquema *.proto algunos tipos de Qt Core y Qt GUI, así como proporcionar acceso a contextos QML a través de clases QProtobufMessage. Se ha añadido soporte para los tipos google.protobuf.Any y oneof.
- En el módulo Qt WebEngine se ha añadido una API para acceder a la configuración de privacidad y seguridad, que permite desactivar ciertas capacidades del motor del navegador. Por ejemplo, con los atributos QWebEngineUrlScheme::FetchApiAllowed y QWebEngineSettings::DisableReadingFromCanvas se puede desactivar la API Fetch y el renderizado de elementos Canvas para reducir el riesgo de identificación pasiva. Se ha añadido soporte para la URL interna "chrome://qt", que al abrirla muestra una página con información sobre la versión del motor Chromium utilizada.
- En el módulo Qt Sql se ha añadido un plugin con soporte para la base de datos Mimer SQL, se han ampliado las configuraciones de conexión en el controlador para las bases de datos MySQL y MariaDB.
- En el módulo Qt PDF se han proporcionado clases para acceder a enlaces, miniaturas de páginas y páginas seleccionadas.
- En Qt Quick, el tipo Font implementa una nueva API para una configuración avanzada del diseño de glifos (shaping) en fuentes OpenType. Se proporciona la posibilidad de utilizar el módulo Qt Quick Shapes para un renderizado de líneas y curvas de alta calidad mediante un shader de fragmentos.

- Se ha trabajado en la documentación del motor de renderizado RHI (Rendering Hardware Interface), así como en la estabilización de la API de bajo nivel relacionada. El nivel de mantenimiento de la compatibilidad hacia atrás para RHI ahora corresponderá a la API de abstracción de plataforma de Qt, lo que permitirá utilizar RHI directamente para desarrollar código de bajo nivel multiplataforma, compatible con todos los stacks gráficos populares y APIs gráficas (OpenGL, Vulkan, Metal y Direct 3D).
- El módulo Qt Quick 3D ha añadido soporte para la creación procedural de texturas y geometría basada en mallas poligonales a través de QML.
- El módulo Qt TextToSpeech ha incluido la capacidad de generar datos PCM (Modulación por Código de Pulso) para el posterior procesamiento de voz sintetizada (anteriormente solo se soportaba la salida directa a un dispositivo de audio). Se han proporcionado configuraciones adicionales de segmentación de texto, una API para buscar voces específicas y una API para determinar las funciones disponibles del motor.
- El conjunto de módulos 'Qt for Python', que proporciona herramientas para crear aplicaciones gráficas en Python utilizando Qt, ahora incluye soporte para operaciones asíncronas mediante asyncio. Se ha garantizado la compatibilidad de Qt for Python con dispositivos basados en la arquitectura AArch64.
- Se ha actualizado el stack Boot2Qt, que puede utilizarse para crear sistemas móviles arrancables con un entorno basado en Qt y QML. El entorno del sistema en Boot2Qt se ha actualizado a la plataforma Yocto 4.2 (Mickledore). Se está trabajando para proporcionar compilaciones listas para usar de Boot2Qt para placas NXP y dispositivos Renesas R-Car.
- Se ha añadido soporte para la plataforma Android 13. En las plataformas Windows y Linux, se ha mejorado el soporte para la arquitectura ARM. Junto con los mantenedores del proyecto Debian, se han colocado en los repositorios estándar del distribuidor paquetes de Qt 6 para Debian 11 y Debian 12, y en los repositorios de Qt Company, se encuentran los paquetes con componentes comerciales de Qt 6.6 para Debian.
- Se han mejorado las herramientas de desarrollo para la plataforma WebAssembly, permitiendo crear aplicaciones Qt que funcionan en navegadores web y son portátiles entre diferentes plataformas de hardware. Las aplicaciones compiladas para la plataforma WebAssembly, gracias a la compilación JIT, se ejecutan con un rendimiento cercano al código nativo, pueden utilizar Qt Quick, Qt Quick 3D y las herramientas de visualización disponibles en Qt. En la nueva versión, se ha simplificado la depuración de aplicaciones para WebAssembly y mejorado el soporte de esta plataforma gracias a la compatibilidad con el enlace dinámico (las aplicaciones de WebAssembly ahora pueden entregarse con bibliotecas compartidas y complementos de Qt).
Fuente: opennet.ru



