The Qt Company has released the Qt 6.9 framework, which continues work on stabilizing and expanding the functionality of the Qt 6 branch. Qt 6.9 provides support for platforms Windows 10+, macOS 12 + Linux (Ubuntu 04/22/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, and QNX. The source code for Qt components is licensed under the LGPLv3 and GPLv2. Qt 6.9 has been designated a minor release, with general support for six months (plus an additional six months for commercial users).
Major changes in Qt 6.9:
- The Qt Graphs module, designed for building 2D and 3D graphs, as well as visualizing large collections of rapidly changing data, has been further developed. The module uses Qt Quick 3D and the RHI (Rendering Hardware Interface) rendering engine, which supports various 3D APIs (OpenGL, Vulkan, Metal, and Direct 3D). The new version adds support for transparency in the Surface3D QML type, implements the QSpline3DSeries class for rendering data as 3D splines, and adds additional options for customizing the design of diagrams, axes, and labels. It is now possible to substitute graphs in applications based on Qt Quick 3D using the "importScene" property in View3D-based scenes. Setting up input parameters in 2D diagrams has been simplified. QGraphsView now supports precise positioning of a rectangular area (plotArea) for displaying a graph.

- The ability to detect emoji codes in text and use the correct color fonts to display them has been implemented. A new API for selecting a font family for emoji has been added to QFontDatabase. Currently, fonts in CBDT and COLRv1 formats are supported. Emoji parsing can be disabled if desired.


- Added an API for creating interfaces in which interface elements blend with content and do not distract the user (content covers the entire window space, without highlighting the title). The Qt.ExpandedClientAreaHint flag has been added to expand the application interface area to the entire window, and the "SafeArea" property has been implemented in Qt Quick to highlight areas with service elements such as the title, footer, and menu that should not intersect with internal application interface elements.

- The Qt SVG module has added initial support for CSS animations, which currently only applies to the "color", "fill", "stroke" and "transform" properties.
- Work has been carried out to improve productivity.
- On systems with hybrid CPUs equipped with separate high-performance and energy-efficient cores, QThread now has the ability to pass a hint to the scheduler on which type of CPU cores the specified thread should be executed.
- For applications using QQuickPaintedItem with OpenGL, the use of FramebufferObject rendering mode is enabled, which uses hardware acceleration.
- The RHI (Rendering Hardware Interface) backend for OpenGL ES includes an extension with support for multisampled rendering, which improves the performance of Qt Quick and Qt Quick 3D on modern GPUs.
- A separate thread for tracking the completion of vertical scanning (vblank) has been added to the RHI backend for Direct 3D, which has reduced latency in interactive interfaces.
- All RHI backends except OpenGL have added support for Variable Rate Shading (VRS), which enables rendering in Quick 3D XR-based virtual reality applications based on the user's gaze direction.
- Qt Quick introduces a new RectangularShadow element that can reduce CPU load when using shading and glow effects in the interface.
- In the QHeaderView class, memory consumption has been significantly reduced when section resizing and reordering are disabled.
- Quick 3D implements the "Weighted Blended" technique, which allows rendering transparent objects without performing separate depth sorting operations. The implemented technique eliminates artifacts due to incorrect sorting that occur when objects overlap each other. In terms of processor load and memory consumption, the new method is identical to the old one.

- Added the Qt Network Authorization module, which provides an API for authentication using the OAuth1 and OAuth2 protocols, which can be used to access online services without revealing the user's password.
- Work has been done to strengthen the security of the Qt HTTP Server module. The ability to limit the maximum number of incoming requests has been added to QHttpServerConfiguration. Support for setting the maximum number of simultaneously created threads has been added to QHttp2Configuration for HTTP/2 clients.
- In QML Language Server, implementations Server LSP (Language Server Protocol) for QML provides information about the QML structure, allowing a hierarchical representation of the QML structure to be displayed in code editors and integrated development environments.
- Qt Quick has added a new ContextMenu component, making it easier to bind context menus to items opened by platform-specific events such as right-clicking. Default context menus have been added for TextField and TextArea components.
Source: opennet.ru





