The Qt Company has released Qt framework 6.6, continuing its efforts to stabilize and enhance the functionality of the Qt 6 branch. Qt 6.6 provides support for platforms including 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, and QNX. The source code for Qt components is provided under LGPLv3 and GPLv2 licenses.
Key changes in Qt 6.6:
- The Qt Quick module has introduced experimental support for adaptive interface layout. To dynamically alter the layout based on window size and automatically position elements according to the current layout structure, the LayoutItemProxy class is proposed. Additionally, the Qt Quick Layouts module provides the ability to use uniform cell sizes for layouts arranged in grids, rows, and columns.

- Qt Quick has added support for selection modes (selectionMode property) in the QML type TableView (for example, it allows control over the selection of cells, rows, columns, and sets of cells). It provides the ability to change the rootIndex property, extends scroll bar styling management (scroll-deceleration) in the QML type Flickable, and implements automatic path shortening. Access to API for managing permissions is available from QML.
- An experimental Qt Graphs module has been added, aimed at providing a universal module for visualizing large collections of rapidly changing data and constructing various types of graphs. The module is being developed as a universal replacement for the old Qt DataVisualization module, which was tied to OpenGL, and the Qt Charts module. It is still under development and currently focuses on reproducing Qt DataVisualization functionality over Qt Quick 3D and utilizing the new Rendering Hardware Interface (RHI) engine, which supports various 3D APIs (OpenGL, Vulkan, Metal, and Direct 3D).

- The Qt Multimedia module has added the QWindowCapture class for capturing the contents of individual windows, supplementing the QScreenCapture class from the previous release, which was limited to capturing the entire screen. QWindowCapture allows obtaining a list of windows available for capture and can be used in applications to provide window sharing. Window and screen capture are supported using the FFmpeg backend on all platforms, except systems using the Wayland protocol.
- The QMediaRecorder class has added properties to control video quality, resolution, and bitrate.
- The capabilities of the Qt GRPC and Qt Protobuf modules have been expanded to allow access to gRPC services and serialization of Qt classes using the Protocol Buffer protocol. The Qt GRPC now includes new options QGrpcChannelOptions and QGrpcCallOptions to simplify the configuration of channels and calls, as well as to limit the maximum execution time of a call or stream. An option, QGrpcMetadata, has been added for clients to set metadata and read returned metadata. proxy serverQt GRPC has integrated support for QML types for automatic generation of client classes QtGRPC. In Qt Protobuf, the inclusion of certain Qt Core and Qt GUI types in *.proto schemas is allowed, as well as the ability to access QML contexts through QProtobufMessage classes. Support for the types google.protobuf.Any and oneof has been added.
- The Qt WebEngine module has added an API for accessing privacy and security settings, allowing individual browser engine features to be disabled. For example, using the attributes QWebEngineUrlScheme::FetchApiAllowed and QWebEngineSettings::DisableReadingFromCanvas, the Fetch API and Canvas element rendering can be disabled to reduce the risk of passive identification. Support for the internal URL "chrome://qt" has been added, which opens a page displaying information about the version of the Chromium engine being used.
- The Qt Sql module has added a plugin supporting the Mimer SQL database management system and expanded connection settings in the driver for MySQL and MariaDB databases.
- The Qt PDF module has provided classes for accessing links, page thumbnails, and selected pages.
- In Qt Quick, the Font type has implemented a new API for advanced glyph shaping customization in OpenType fonts. The use of the Qt Quick Shapes module for high-quality rendering of lines and curves using a fragment shader is now available.

- Documentation work for the RHI (Rendering Hardware Interface) engine has been completed, as well as the stabilization of the associated low-level API. The level of backward compatibility for RHI will now match the Qt Platform Abstraction API, allowing for direct use of RHI in developing cross-platform low-level code that works with all popular graphics stacks and graphics APIs (OpenGL, Vulkan, Metal, and Direct 3D).
- The Qt Quick 3D module has added support for procedural creation of textures and geometry based on polygonal meshes from QML.
- The Qt TextToSpeech module now allows for the generation of PCM (Pulse-Code Modulation) data for further processing of synthesized speech (previously, only direct output to the audio device was supported). Additional text segmentation settings have been provided, along with an API for finding necessary voices and an API for determining available engine features.
- The Qt for Python module pack, which provides tools for creating graphical applications in Python using Qt, has added support for asynchronous operations using asyncio. Qt for Python is now compatible with devices based on the AArch64 architecture.
- The Boot2Qt stack has been updated, which can be used to create bootable mobile systems with an environment based on Qt and QML. The system environment in Boot2Qt has been updated to the Yocto 4.2 (Mickledore) platform. Work is underway to provide ready-made Boot2Qt builds for NXP boards and Renesas R-Car devices.
- Support for Android 13 has been added. On Windows and Linux platforms, support for the ARM architecture has been improved. Along with the maintainers from the Debian project, packages with Qt 6 for Debian 11 and Debian 12 have been added to the official distribution repositories, while Qt Company repositories include packages with commercial components of Qt 6.6 for Debian.
- Development tools for the WebAssembly platform have been enhanced, enabling the creation of Qt applications that run in web browsers and are portable across different hardware platforms. Applications built for the WebAssembly platform achieve near-native code performance due to JIT compilation and can utilize Qt Quick, Qt Quick 3D, and the available visualization tools in Qt. The new version simplifies application debugging for WebAssembly and improves support for this platform with dynamic linking (WebAssembly applications can now be delivered with shared libraries and Qt plugins).
Source: opennet.ru



