Last week, after nine months of development, version 5.6 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 long-term support, new experimental modules (and removal of obsolete), support for new platforms, as well as a new tariff plan for startups in the commercial version of Qt. ')
Long term support
Version 5.6 is the first LTS release in the fifth Qt and will be maintained and received updates for three years, unlike regular releases, for which the support period will be one year. Given that the support for the previous LTS version 4.8 was discontinued at the end of last year, it is recommended to switch to Qt 5.6.
Also, in the next versions it is planned to remove support for obsolete compilers, in which C ++ 11 functionality is not sufficiently implemented. Those for whom support for VS2010 and gcc 4.6 is important will be able to stay on version 5.6.
Startup License
For small companies with incomes of up to $ 100,000 , a new Start-Up license appeared , replacing Indie Mobile, whose sales were discontinued. The cost of the license starts from $ 49 (when purchased within two months after the release).
Recall that Qt 5.6 will be the latest minor release available under the LGPLv2.1 license. Starting from version 5.7, the LGPL and GPL of the third version will be used.
Supports high resolution screens
The new version for all platforms has the ability to automatically scale to high-resolution screens (HiDPI), as it was before on MacOSX. When scaling is enabled, Qt will automatically adjust the sizes of graphic elements and fonts, as well as load images of the desired size. Scaling also automatically adjusts when moving a window between screens with different density of points.
New modules
The Qt Location module, which appeared in a previous release as a preliminary version, is now included with Qt. Added a preliminary version of the Qt SerialBus module, which allows you to work with CanBUS and ModBus tires.
Also included in Qt 5.6 is a preliminary version of the Qt Quick Controls 2.0 module (in Qt 5.6 it is called Qt Labs Controls), which is a new implementation of the component library for creating user interfaces using Qt Quick. 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. The QtWS15 conference video showing an early version of Qt Quick Controls 2.0:
Changes to existing modules
In Qt WebEngine, the Chromium engine has been updated to version 45 and has received support for PPAPI plugins, such as Flash. The WebActions API has been ported with Qt WebKit and the low-level WebEngineCore API has been added. It also became possible to use the system proxy settings. The Linux version of Qt WebEngine can be compiled using system libraries.
Improved compatibility of containers with C ++ 11 and STL: added iterators, key_iterator for QHash and QMap, and also const_iterator for QByteArray. Many performance improvements in QString. QNetworkAccessManager has received support for redirecting HTTP requests.
In Qt Multimedia, a new QML-type Playlist, as well as the Audio Role API for media players. On WinRT, support for using focus and video preview has been added to work with the camera.
Qt QML received support for writing JavaScript function names to output for the perf scheduler on Linux, as well as reduced memory consumption.
Qt Canvas 3D can now use components based on Item from Qt Quick as a texture, and also supports rendering directly to the Qt Quick scene.
Handwriting recognition appeared in the Qt Virtual Keyboard.
The Qt 3D module has received a significant amount of improvements, and this release also comes as a preliminary version.
Removed and obsolete modules
The Qt Script module is deprecated and users are encouraged to switch to Qt QML. Also declared obsolete by Qt Enginio. The Qt Webkit and Qt Quick 1 (Qt Declarative) modules are removed from delivery. In addition, for security reasons, official releases are collected without the support of the MNG and JPEG2000 image formats. If necessary, Qt can be compiled from source with the inclusion of support for these formats.
Platform Support
Version 5.6 includes full support for Windows 10, both using the win32 API and WinRT. Qt applications can run on PCs, tablets and phones, as well as distributed through the Windows Store. Binary assemblies for Visual Studio 2015 are now available. Windows Embedded Compact 2013 support has also been added. Qt WebView has appeared on the WinRT platform.
In Qt 5.6 for Device Creation, you can now develop and deploy directly from under Windows. Improved compatibility with Yocto-based systems on the Boot to Qt stack.
Added support for NVIDIA Jetson TK1 using a new eglfs backend using DRM, EGLDevice and EGLStream. Intel NUC support has also been added. A full list of embedded platforms can be found here .
Android received Qt Nfc support. Qt Positioning support and the optional use of FreeType appeared on MacOSX.
Linux has the ability to write logs directly to syslog.
Infrastructure Changes
When developing a new version, a new CI system of its own design, COIN, was introduced to replace the previous Jenkins-based continuous integration system. The new system has increased the speed of testing and integration of changes in Qt. In addition, COIN allows you to use a different set of platforms for different Qt branches. Another advantage is that most binary assemblies are now built on the same systems as they are tested on, i.e. it is those assemblies that are subsequently produced being tested.