Release of Qt 5.14 framework and Qt Creator 4.11.0 development environment

After six months of development prepared by cross-platform framework release Qt 5.14. The source code for the Qt components is licensed under the LGPLv3 and GPLv2, the Qt developer tools such as Qt Creator and qmake, and some modules are licensed under the GPLv3. The release of Qt 5.14 marked the beginning of preparation for the Qt 6 branch, in which expected significant architectural changes. Qt 6 is scheduled for the end of next year, and to smooth the transition to a new branch, it was decided to include preliminary implementations of some innovations in Qt 5.14 and Qt 5.15 LTS releases.

All innovations:

  • Qt Quick has begun work on providing a graphics API independent of the operating system's 3D API. In Qt 5.14 proposed preliminary implementation of a new scene rendering engine using the new RHI (Rendering Hardware Interface) layer to enable Qt Quick applications to work not only on top of OpenGL, as has been done so far, but also using Vulkan, Metal and Direct 3D 11. A new engine is currently proposed in the form of an option to prepare applications for the migration to Qt 6, which will use RHI to display graphics by default.
  • Implemented the Qt Quick Timeline module, which makes it easy to animate properties using a timeline and keyframes. The module is derived from the code of the Qt Design Studio development environment, which provides a timeline-based editor for creating animations without writing code.
  • Added experimental module Qt Quick 3D, which provides a unified API for creating user interfaces based on Qt Quick that combine 2D and 3D graphics elements. The new API allows you to use QML to define 3D UI elements without using the UIP format. 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. 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.
  • Added WheelHandler, an event handler for mouse wheel events, as well as events for the wheel emulated by the touchpad.
  • Work continued to improve performance on screens with high pixel density. Including added the ability to specify fractional scaling factors.
  • Added the ability to add color spaces for images, which allows you to achieve correct color reproduction when displaying images on calibrated monitors.
  • The QColorConstants namespace has been added, which at compile time allows you to generate instances of the QColor class with a predefined palette.
  • Added support for reading and writing Markdown format to the Qt Widgets and Qt Quick components for creating text editors.
  • The QCalendar API implements the ability to work with non-Gregorian calendars.
  • For Android, support has been added for assemblies that span multiple ABIs, which allows you to compile an application at once for various architectures. Also added is support for the AAB package format, which allows the application to be delivered for all supported architectures in one archive.
  • Carried out performance optimization of the Qt 3D module, including modernized work with threads, framebuffer objects and the notification system. As a result, we managed to reduce the load on the CPU when rendering a frame and increase the efficiency of synchronization between executing threads.
  • Added APIs to the Qt Network module to configure HTTP/2 settings and monitor network connectivity.
  • The Qt WebEngine web engine has been updated to Chromium 77 state and extended with a new API for managing the life cycle of the QWebEnginePage object.
  • License for Qt Wayland Compositor, Qt Application Manager and Qt PDF components changed from LGPLv3 to GPLv3, i.e. linking to new releases of these components now requires open source software under GPLv3-compatible licenses or purchase of a commercial license (using the LGPLv3 allowed linking to proprietary code).

Simultaneously formed IDE release QtCreator 4.11.0, designed to create cross-platform applications using the Qt library. Both the development of classic C++ programs and the use of the QML language are supported, in which JavaScript is used to define scripts, and the structure and parameters of interface elements are set by CSS-like blocks.

The new version of Qt Creator adds experimental support for developing applications for microcontrollers and compiling to WebAssembly using modules "Qt for MCUs" and "Qt for WebAssembly". For systems with
CMake 3.14 and newer versions use a new file API (/.cmake/api/). Added support to the code editor expansion Language Server protocol for highlighting semantics, as well as simplified Language Server setup for the Python language. An option has been added to the interface to change the style of marking line endings. The ability to edit QML bindings has been added to Qt Quick Designer.

Source: opennet.ru

Add a comment