Qt 6.11 framework release

The Qt Company has released the Qt 6.11 framework, which continues work on stabilizing and expanding the functionality of the Qt 6 branch. Qt 6.11 provides support for the following platforms: Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 15.6/16, SUSE 15 SP6, RHEL 8.10/9.6/10, Debian 11.6/12), iOS 17+, 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.11 has received the status of an interim release, which will be publicly supported for 6 months (+ an additional 6 months for commercial users).

Major changes in Qt 6.11:

  • The Qt Canvas Painter module has been added, providing an API for hardware-accelerated rendering of 2D content, built with the HTML Canvas 2D Context specification in mind. Rendering is performed using the RHI (Rendering Hardware Interface) engine, which supports various 3D APIs (OpenGL, Vulkan, Metal, and Direct 3D), resulting in a significant performance boost. In tests, Qt Canvas Painter was twice as fast as QPainter with an OpenGL backend on a typical Lenovo ThinkPad P16 Gen 2 laptop, five times faster on a budget Lenovo Tab M10 HD Android tablet, and ten times faster on a high-end Samsung Galaxy Tab S8 Android tablet.
     Qt 6.11 framework release

    In addition to high performance, Qt Canvas Painter supports advanced features such as configurable antialiasing, framing gradients and shadows (QCanvasBoxGradient and QCanvasBoxShadow similar to the CSS box-shadow property), grid patterns (QCanvasGridPattern), custom shader brushes, and color effects for changing transparency, brightness, contrast, and saturation.

     Qt 6.11 framework release
  • The functionality of the Qt Quick 3D module is now closer to that of game engines. Support has been added for the SSGI (Screen Space Global Illumination) rendering technique for simulating light reflections from surfaces in post-processing (an alternative to baking lightmaps) and SSR (Screen Space Reflections) for realistic reflection rendering in real time. The anti-aliasing algorithm for moving objects has been improved by generating motion vectors for each object. Configurable render passes have been implemented, which can be used directly from QML for layer masks, post-processing effects, and color picking. New APIs for layers and tags have been added, allowing control over individual rendering passes, the inclusion of elements at different stages of the render pipeline, and redirection to render target buffers.
     Qt 6.11 framework release
  • The Qt Graphs module has expanded its capabilities. The CustomSeries type has been added, allowing you to create custom graphs in which a user-defined delegate is responsible for drawing each data element. 3D graphs now support multiple axis instances. For example, QBar3DSeries supports separate axes for rowAxis, valueAxis, and columnAxis, while QScatter3DSeries and QSurface3DSeries support separate axes for axisX, axisY, and axisZ. New properties have been added for overriding colors for individual axes, customizing graph gradients, changing line styles, and positioning labels. An example of creating custom 2D and 3D graphs has been added: Wind Turbine Dashboard.
     Qt 6.11 framework release
  • The experimental Qt TaskTree module has been added, providing a declarative approach for creating and executing asynchronous tasks in C++. The key components of Qt TaskTree are: "recipes"—reusable objects describing an asynchronous workflow; "groups"—define policies for child tasks; "storage" for sharing data between tasks; and "iterators" for looping and re-executing tasks. Qt TaskTree also addresses API incompatibilities by unifying various asynchronous APIs into a standard interface.
     Qt 6.11 framework release
  • Expanded capabilities for working with animated vector graphics generated from SVG and Lottie images. The Qt Quick VectorImage module and lottietoqml tool have been stabilized. Support has been added for morphing animations, SVG masks, SVG symbols, and matte layers (for controlling the visibility of another layer).
  • A DoubleSpinBox component has been added to Qt Quick Controls. The DialogButtonBox now allows control over default button handling. The RectangularShadow effect now supports independent control of corner radii.
  • In Qt Widgets, QWizard has a StretchBanner option; QAbstractItemView has a keyboardSearchFlags parameter for customizing the search behavior as keys are pressed; QColumnView has a property for controlling the preview visibility.
  • Added the Qt OpenAPI module, which allows you to generate HTTP client code using the Qt Networks RESTful API based on the OpenAPI specification in YAML format.
  • The Qt GRPC module has been updated to include a mechanism for managing the flow and content of requests and responses.
  • The Qt HTTP Server module has expanded limit management tools and improved worker thread response processing. QNetworkRequest now supports TCP Keep Alive settings (by default, idle connections are automatically terminated after 2 minutes).
  • The QML Language Server, used for IDE integration, now has information about the location of QML type definitions in C++ code to simplify navigation between QML and C++ from the IDE. When working with C++ code, you can find QML objects by IDs and easily traverse the hierarchy of QML contexts.
  • In addition to QRangeModel, the QRangeModelAdapter class is implemented, providing a C++ API for modifying model data, communicating via the QAbstractItemModel protocol, making it easy to pass data from C++ backend code to Qt Quick or Qt Widget.
  • Support for the Android 16 platform has been added. Google Play Feature Delivery functionality has been implemented for splitting applications into packages (the main package is installed from Google Play immediately, and additional packages are downloaded as needed). For Android Automotive, support for launching Qt without Android dependencies has been implemented for a quick start to rendering.

Also noteworthy is the recently released Qt Creator 19 integrated development environment (IDE), designed for creating cross-platform applications using the Qt library. It supports both classic C++ development and QML, which uses JavaScript to define scripts and CSS-like blocks to define the structure and parameters of interface elements. Ready-to-use builds are available for Linux, Windows, and Mac OS.

Among the new features, a notable feature is the minimap mode (Preferences > Text Editor > Display > Enable minimap), which displays a mini-thumbnail of the entire content next to the scrollbar, allowing you to quickly scan all the code. A simple MCP server is integrated for integration with AI assistants, allowing you to open files and projects, run builds, and debug. Build setup on external devices has been simplified: a Run Auto-Detection button has been added to automatically detect the Qt version, compiler, debugger, and CMake after device registration. Support has been implemented for direct access to the file systems of connected devices, Android devices, and emulators.

 Qt 6.11 framework release


Source: opennet.ru

Add a comment