Qt Company ha publicado la versión del marco Qt 6.9, en la que se ha continuado trabajando en la estabilización y expansión de la funcionalidad de la rama Qt 6. En Qt 6.9 se ofrece soporte para plataformas Windows 10+, macOS 12+, Linux (Ubuntu 22.04/24.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.10/9.4, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS y QNX. Los códigos fuente de los componentes de Qt se distribuyen bajo las licencias LGPLv3 y GPLv2. Qt 6.9 ha obtenido el estado de lanzamiento intermedio, cuyo soporte público estará disponible durante 6 meses (más otros 6 meses para usuarios comerciales).
Principales cambios en Qt 6.9:
- Se ha continuado con el desarrollo del módulo Qt Graphs, destinado a la creación de gráficos 2D y 3D, así como a la visualización de grandes colecciones de datos que cambian rápidamente. El módulo utiliza Qt Quick 3D y el motor de renderizado RHI (Rendering Hardware Interface), que admite diversas API 3D (OpenGL, Vulkan, Metal y Direct 3D). En la nueva versión se ha añadido soporte para la transparencia en el tipo Surface3D de QML, se ha implementado la clase QSpline3DSeries para dibujar datos en forma de splines 3D, y se han agregado más opciones para personalizar el diseño de gráficos, ejes y etiquetas. También se ha habilitado la posibilidad de incrustar gráficos en aplicaciones basadas en Qt Quick 3D utilizando la propiedad "importScene" en escenas basadas en View3D. Se ha simplificado la configuración de los parámetros de entrada en los gráficos 2D. En QGraphsView se ha añadido soporte para la posicionamiento preciso del área rectangular (plotArea) para mostrar gráficos.

- Se ha implementado la posibilidad de detectar códigos emoji en el texto y utilizar fuentes de colores correctas para su visualización. Se ha añadido una nueva API en QFontDatabase para seleccionar la familia de fuentes para emoji. Actualmente se admite el uso de fuentes en formatos CBDT y COLRv1. Si se desea, el análisis de emoji puede desactivarse.


- Se ha añadido una API para crear interfaces en las que los elementos de la interfaz se integran con el contenido y no distraen al usuario (el contenido cubre todo el espacio de la ventana, sin destacar el encabezado). Para ampliar el área de la interfaz de la aplicación a toda la ventana, se ha añadido la bandera Qt.ExpandedClientAreaHint, y para resaltar las áreas con elementos de servicio, como encabezados, pies de página y menús, que no deben cruzarse con los elementos internos de la interfaz de la aplicación, se ha implementado la propiedad "SafeArea" en Qt Quick.

- Se ha añadido soporte inicial para animación CSS en el módulo Qt SVG, que actualmente se aplica solo a las propiedades «color», «fill», «stroke» y «transform».
- Se ha trabajado en la mejora del rendimiento.
- En sistemas con CPU híbridos, equipados con núcleos de alto rendimiento y de bajo consumo, se ha añadido a QThread la capacidad de sugerir al programador en qué tipo de núcleos de CPU debe ejecutarse el hilo especificado.
- Para aplicaciones que utilizan QQuickPaintedItem con OpenGL, se ha permitido el uso del modo de renderizado FramebufferObject, que aplica aceleración por hardware.
- En el backend RHI (Rendering Hardware Interface) para OpenGL ES se ha implicado una extensión que soporta el renderizado multimuestreador, lo que permite mejorar el rendimiento de Qt Quick y Qt Quick 3D en GPU modernas.
- En el backend RHI para Direct 3D se ha añadido un hilo separado para rastrear la finalización del barrido vertical (vblank), lo que ha permitido reducir las latencias en interfaces interactivas.
- En todos los backends de RHI, excepto OpenGL, se ha añadido soporte para el mecanismo Variable Rate Shading (VRS), lo que permite en aplicaciones de realidad virtual basadas en Quick 3D XR el renderizado teniendo en cuenta la dirección de la mirada del usuario.
- En Qt Quick se ha propuesto un nuevo elemento RectangularShadow, que permite reducir la carga del CPU al utilizar efectos de sombra y resplandor en la interfaz.
- En la clase QHeaderView se ha reducido significativamente el consumo de memoria al desactivar el cambio de tamaño y la reagrupación de secciones.
- En Quick 3D se ha implementado la técnica «Weighted Blended», que permite renderizar objetos transparentes sin realizar operaciones separadas de ordenación de profundidad. La técnica implementada evita la aparición de artefactos debido a una ordenación incorrecta que ocurre cuando los objetos se superponen. En términos de carga de CPU y consumo de memoria, el nuevo método es idéntico al antiguo.

- Se ha añadido el módulo Qt Network Authorization, que proporciona una API para autenticación mediante los protocolos OAuth1 y OAuth2, que se puede utilizar para acceder a servicios en línea sin revelar la contraseña del usuario.
- Se ha trabajado en reforzar la protección del módulo Qt HTTP Server. En QHttpServerConfiguration se ha añadido la posibilidad de limitar el número máximo de solicitudes entrantes. En QHttp2Configuration se ha agregado soporte para la configuración del número máximo de flujos creados simultáneamente para clientes HTTP/2.
- En el servidor de lenguajes QML, implementación servidores LSP (Protocolo de Servidor de Lenguajes) para QML, se proporciona la información sobre la estructura de QML, lo que permite mostrar una representación jerárquica de la estructura de QML en editores de código y entornos de desarrollo integrados.
- Se ha añadido un nuevo componente ContextMenu en Qt Quick, que simplifica la vinculación de menús contextuales a elementos que se abren al recibir eventos específicos de la plataforma, como el clic derecho. Se han añadido menús contextuales por defecto para los componentes TextField y TextArea.
Fuente: opennet.ru





