📜 ⬆️ ⬇️

Qt 5.7 framework release

Yesterday, just 3 months after the previous major release, version 5.7 of the Qt cross-platform framework was released.


Qt allows you to develop applications using C ++ and the declarative programming language QML, supports all major desktop and mobile platforms, as well as some embedded and has open source code. There is a commercial version of Qt containing additional proprietary modules.


The new release brought a change of license, the opening of the code of proprietary modules, the transition to C ++ 11, the stabilization of some experimental modules, as well as new experimental modules and the removal of obsolete ones.




License change


Starting with version 5.7, Qt is no longer released under the LGPLv2.1. Now the core modules (Qt Essentials) are available under the LGPLv3 and GPLv2. Utilities and development tools (including Qt Creator) and new modules are now released under GPLv3. These changes relate only to the open source version and for users of the commercial version everything remains as before.



More information about changing the license can be found in this article .


Transition to C ++ 11


After the release of the LTS version , it became possible to discontinue support for obsolete compilers in new versions and start actively using the features of C ++ 11 in the Qt code. The list of supported platforms is here .


Using the C ++ 11 tools, the codebase has been significantly cleaned. QAtomic is implemented using std :: atomic. Added QTypeInfo for char16_t and char32_t.


To use Qt containers in range for, a special qAsConst function has been added .


Opening the code of proprietary modules


As of Qt 5.7, the open source and proprietary versions are identical. Under the GPLv3 license in the open source version, the following modules are added:




The only exception is the Qt Quick Compiler, which is planned to be integrated into Qt 5.8.


Qt Creator 4.0 adds the following features from the proprietary version:



Qt Quick Controls 2


Qt Quick Controls 2.0 is a new implementation of a component library for creating user interfaces with Qt Quick.
Available as a preview version in Qt 5.6 (under the name Qt Labs Controls), this module is now included with Qt. The new version is more lightweight and optimized for use on embedded devices, is built on the principle of templates, allowing you to completely change the appearance of the components and has, in addition to the standard theme, support for the Material and Universal styles.



A little humble self-praise :)

As an example of an application with an interface on Qt Quick Controls 2.0, my open source time tracker can be viewed.


Qt 3d


Available as a preview version in two previous releases, Qt 3D is included with Qt. This is a 3D engine with API in C ++ and QML, which allows embedding 3D content into the application. In addition to rendering, use of input devices in three-dimensional space is available, including such specialized devices as 3D mice, gamepads, joysticks, and everything that works with the Qt Gamepad. There is also a test version of the library of geometric primitives, materials and other utilities Qt3DExtras and Qt 3D Scene Editor - a concept editor of three-dimensional scenes with the ability to import into QML.



Qt Creator 4.0


The structure also includes a new version of the integrated development environment for Qt. In addition to the features already mentioned from the proprietary version, Qt Creator 4.0 improved support for projects on CMake and Qt Quick Designer, combined debugging and profiling modes, added a new flat theme and new QML profiling mode - Flamegraph.



Qt for Device Creation


Qt for Device Creation has added OTA update functionality, the ability to use Windows for development, and support for QNX. Windows Embedded is no longer supported. Work has been done to bring Qt for Device Creation to compatibility with the Yocto Project.


You can read more about changes to Qt for Device Creation on the blog .


New modules


Added a preliminary version of the Qt Wayland Compositor module, which allows you to implement your own composer Wayland. The module aims to be used in embedded devices that require support for multiple concurrent applications. The module API in C ++ and QML, there is also an API for creating Wayland extensions in C ++ and QML.


Also included in Qt 5.7 is a preliminary version of the Qt SCXML module, which allows the use of SCXML state machines.


Qt 5.7 includes a preliminary version of the Qt Gamepad, which allows you to work with a gamepad from C ++ and QML. Windows, Linux, Android and iOS are supported.


Changes to existing modules



Removed and obsolete modules


The Qt Quick 1 and Qt Enginio modules are removed from delivery.


Platform Support



Additional Information



')

Source: https://habr.com/ru/post/303498/


All Articles