Qt 5.15 framework release

Submitted by cross-platform framework release Qt 5.15. The source code for the Qt components is provided under the LGPLv3 and GPLv2 licenses. In December, a new branch of Qt 6 will be published, in which expected significant architectural changes. To smooth the future transition to the Qt 6 branch, Qt 5.15 includes preliminary implementations of some innovations and adds warnings about the imminent deprecation of functionality slated for removal in Qt 6.

Qt 5.15 is classified as a long term support (LTS) release. At the same time, for the community update branch 5.15 will be published only until the formation of the next significant issue, i.e. about six months. The extended LTS-cycle, which implies the formation of updates for three years, will be limited to users with a commercial license (for regular companies - $5508 per year per developer, and for startups and small businesses - $499 per year). Qt Company also considered the ability to move to a Qt distribution model where all releases for the first 12 months will be distributed to commercial license users only. But so far this idea has not gone beyond discussion.

All What's new in Qt 5.15:

  • Work continued on creating an abstracted graphics API that does not depend on the 3D API of the operating system. A key component of the new Qt graphics stack is a scene rendering engine that uses the RHI (Rendering Hardware Interface) layer to enable Qt Quick applications to work not only with OpenGL, but also on top of the Vulkan, Metal, and Direct 3D APIs. In 5.15, a new graphics stack is offered in the form of an option that has the status of "Technology Preview".
  • Complete module support provided Qt Quick 3D, from which the sign of experimental development is removed. Qt Quick 3D provides a unified API for creating user interfaces based on Qt Quick that combine 2D and 3D graphics. The new API allows you to use QML to define 3D UI elements without using the UIP format. In Qt Quick 3D, you can use one runtime (Qt Quick), one scene layout and one animation framework for 2D and 3D, and use Qt Design Studio for visual interface development. The module solves problems such as the high overhead of integrating QML with content from Qt 3D or 3D Studio, and provides the ability to synchronize animations and frame-level transformations between 2D and 3D.

    New features added to Qt Quick 3D include support for post-processing effects, a C++ API for geometry manipulation, a rotation API based on the QQuaternion class, and support for point lights. To evaluate the various features of Qt Quick 3D prepared a special demo application showing how you can change the types and sources of light, use complex models, manipulate textures, materials and anti-aliasing. Simultaneously proposed issue environment for designing the user interface of Qt Design Studio 1.5, which has full support for Qt Quick 3D.


  • In Qt QML the work was focused in preparation for Qt 6. Implemented the ability to use properties with the 'required' attribute in components, the installation of which is mandatory. The qmllint utility has improved the generation of warnings about possible problems in QML code. The qmlformat utility has been added to make it easier to format QML code according to coding style guidelines. Ensured QML compatibility with Qt edition for microcontrollers.
  • Qt Quick added support for color spaces to the Image element. A new PathText element has been added to Qt Quick Shapes.
    The cursorShape property has been added to the pointer handler, through which you can change the shape of the mouse cursor on desktop systems. Added a HeaderView element to make it easier to add vertical and horizontal headers to TableView-based tables.

  • Support for client-side window decoration (CSD) has been greatly improved, allowing an application to define its own window decorations and place arbitrary content in the window's title bar.
  • Module stabilized Qt Lottie, which provides an extended API for QML that allows you to draw graphics and animations exported in JSON format using the Bodymovin plugin for the Adobe After Effects package. Thanks to QtLottie, the designer can prepare animation effects in a convenient application, and the developer can directly connect the exported files to the application interface on QtQuick. QtLottie includes a built-in micro-engine for animation, clipping, layering, and other effects. The engine is available through the LottieAnimation QML element, which can be controlled from QML code, just like any other QtQuick elements.
  • Browser engine Qt WebEngine updated to codebase Chromium 80 (Chromium 5.14 was used in the 77 branch, the current version is Chromium 83).
  • The Qt 3D module has improved profiling and debugging tools.
  • Support for rendering to multiple surfaces has been added to Qt Multimedia.
  • In the Qt GUI, scaling and image transformation operations are now multi-threaded in many cases.
  • Qt Network added support for custom timeouts and session labels in TLS 1.3 (Session Ticket, allows you to resume a session stateless on the server side).
  • Enabled Qt Core, QRunnable and QThreadPool to work with std::function. A new QFile::moveToTrash() method has been added to move items to the trash, taking into account the specifics of different platforms.
  • In Qt for Android added support for native dialogs for opening and saving files.

Source: opennet.ru

Add a comment