Qt 5.4 release process is ongoing and we now have the Qt 5.4 Alpha release available. As always, the Alpha is in source code only. Binary installers will be available in a few weeks with the Beta release. Features of Qt 5.4 are now frozen and in the next months the focus is in finalising and polishing functionality. To give an overview what is coming with Qt 5.4, I’ll summarise the highlights of the Qt 5.4 Alpha release.
WinRT fully supported
With Qt 5.4 we will have full support for Qt for WinRT. Based on the feedback and experience we have gotten from Qt 5.3 the WinRT port has been polished and improved. For Windows Phone deployments, we have set Windows Phone 8.1 as the minimum supported version, allowing us to remove the dependency on the previously-used D3D compiler service and greatly simplify deployment to the device. Most Qt modules are now supported on WinRT, so with Qt 5.4 it is easy to bring your Qt applications to Windows Phone, Windows tablets and PCs with the Modern UI, as well as publish in the Windows Store.
With QQuickWidget introduced in Qt 5.3 it became possible to easily show Qt Quick content inside a Qt widgets based application. Qt 5.4 introduces QOpenGLWidget, the modern replacement for the old QGLWidget class from Qt 4. QOpenGLWidget is a new widget for showing OpenGL rendered content, which can be used like any other QWidget. This also allows us to deprecate old Qt OpenGL module, as everything it does and more is now provided by other modules.
Qt 5.4 also brings new QQuickRenderControl API, which allows efficient rendering of Qt Quick 2 scenes into framebuffer objects. The contents can then be used in arbitrary ways in Qt-based or 3rd party OpenGL renderers. With Qt 5.4 you can also adopt and wrap existing OpenGL contexts in QOpenGLContext. This improves the ability to embed Qt content for use in other rendering engines. In addition to other new graphics APIs Qt 5.4 brings convenient QOpenGLWindow and QRasterWindow classes as well as introduces support for 10-bit per color channel images.
On Windows it is now possible to dynamically select during the application startup whether to use ANGLE or OpenGL. It is possible to use either opengl32.dll or ANGLE’s OpenGL ES 2.0 implementation in Qt applications without the need for two separate builds of the binaries.
Android Style for Qt Quick Controls
We have extended the styling capabilities of Qt Quick and added support to Android style, which enables native look for Widgets and the Qt Quick Controls on Android. In previous versions of Qt it was possible to style Widgets to look native on Android only if one used Ministro. Now both the Widgets and Qt Quick Controls, i.e. buttons, sliders, progress bars and other controls and widgets you use in your application, will look native on Android by default.
Qt Bluetooth and BluetoothLE
Qt Bluetooth now supports Bluez5. There is also a technology preview implementation of Bluetooth Low Energy available.
New Qt WebEngine and Qt WebChannel
The biggest new item Qt 5.4 brings is the new Qt WebEngine, integrating the comprehensive web capabilities of Chromium 37 into Qt. The integration with Qt focuses on an API that is easy to use, yet extensible. We have worked hard with the new Qt WebEngine ensuring seamless graphics integration, to allow rendering of Chromium’s textures directly into the OpenGL scene graph of Qt Quick. Earlier this year we have already released Qt WebEngine with Qt Enterprise Embedded, with Qt 5.4 we are now adding support for the desktop platforms Linux, Mac OS X and Windows.
Qt 5.4 also contains Qt WebKit. It is still supported, but as of Qt 5.4 we consider it done, so no new functionality will be added to it. We are also planning to deprecate Qt WebKit in future releases, as the new Qt WebEngine provides what is needed.
Qt Location and Qt 3D have also been under work recently, but they are not ready to be included in Qt 5.4.
More licensing options
As a new licensing option, Qt 5.4 comes with LGPLv3 licensing option for all Qt modules, as announced earlier. The new Qt WebEngine is available only with LGPLv3 and GPLv2 licenses, as well as the commercial Qt Enterprise license. For more information about this change, please refer to the “Adding LGPLv3 to Qt” blog post.