
Qt release 5.7 adds Qt 3D Module, applies C++11 features
The future of user interfaces, the company says, is moving towards heavier integration of 3D graphics. 3D integration of Qt has always been possible with direct OpenGL programming but with Qt 5.7 and the new Qt 3D module it is now easy to create 3D UIs and interact with 3D objects using high-level Qt C++ and QML APIs. Visualizing a 3D model with Qt 3D is now a matter of minutes instead of hours or days of OpenGL programming. In addition to 3D rendering, Qt 3D is a fully extensible 3D framework for near-realtime simulations e.g. physics engine, artificial intelligence, collision detection. Qt 3D has been developed together with KDAB, a Qt Service Partner and the biggest external contributor to Qt. A demonstration is here.
Qt 5.7 also introduces Qt Quick Controls 2, a new library of UI controls (buttons, sliders, dials, etc). It has been built from the ground up with performance and memory consumption in mind making them ideal for creating modern touch-based user interfaces for embedded and mobile devices. They come with a flexible styling system that allows developers to create custom styles for their user interfaces. In addition, they also come with three predefined styles that let users immediately achieve a desired look-and-feel for instance on Android devices. Demo here.
Together with the Qt Quick Designer visual UI layout tool, the Qt Quick Controls 2 provide a seamless developer-designer workflow. With the workflow, designers and developers can work together and do rapid prototyping of UIs even for embedded platforms. This can reduce the device time-to-market by removing the need for long iteration cycles between each change in user interfaces.
Qt is a framework for all C++ development and allows developers to harness the power of C++ with high-level Qt libraries. As C++ is moving forward with the C++11, C++14 and upcoming C++17 standards, Qt is following the progress closely. It has already been possible to use modern C++ with Qt but with the latest release, Qt 5.7 also makes use of C++11 directly within the Qt libraries. This allows Qt developers to better harness the modern C++ features but also improves the quality and performance of the Qt libraries. Video clip here.
With the improvements, Qt 5.7 requires compilers to support C++11 and no longer supports the older C++98 compilers. However, as the previous version Qt 5.6 is a Long-Term Supported release, it offers a valid, parallel product offering for the platforms with legacy compilers.
In addition to an improved user interface offering, Qt 5.7 also provides additional solutions for embedded device creation. With Qt 5.7 for Device Creation, it’s now possible to use Microsoft Windows for embedded Linux development allowing Windows users to directly develop, deploy, debug and analyze their applications on real embedded hardware.
For Device Creation, Qt 5.7 comes with technology previews of multi-process support for embedded UIs through Qt Wayland Compositor, and Over-the-Air (OTA) update technology for device vendors to update their software stacks online—a feature extremely important for connected Internet of Things systems.
In addition to embedded Linux, Qt 5.7 for device creation continues to fully support QNX with pre-built binaries for the convenience of developers.
In January, The Qt Company announced changes to the open source licensing and product structure of the Qt cross-platform application development framework that are now applied with the release of 5.7. New versions of Qt will be licensed under a commercial license, GPLv2, GPLv3, and LGPLv3, but no longer under LGPLv2.1. The updated open source licenses will further ensure end user freedom when using open source licensed versions of Qt. For instance, LGPLv3 explicitly forbids the distribution of closed consumer devices. Commercial Qt licensing removes these requirements and includes professional technical support from The Qt Company. Also, a new ‘start-up’ license has also been announced that will help support small businesses who are seeking to utilize Qt in commercial desktop and mobile applications.
A download of Qt 5.7 is available from; https://qt.io
