Qt 5.6 released

I’m happy to announce that Qt 5.6.0 has been released today! This release has taken a bit longer to finish than we originally expected, mostly because we put a lot of new infrastructure in place, allowing us to make Qt 5.6 a Long Term Supported (LTS) release. With that, Qt 5.6 (LTS) will be receiving patch releases with security updates and bug fixes for the next three years, in parallel to upcoming Qt versions. Today, with Qt 5.6, we’ve now also made our new offering for start-ups and small businesses available!

Long-term support

The last release that was supported for a long period of time has been Qt 4.8. Since we are ending the support for Qt 4.8, there is a need to have a new version of Qt that will be supported for a longer period of time.

With Qt 5.6, we feel comfortable offering this long-term commitment. We have had a tremendous amount of changes and improvements since the initial release of Qt 5, making Qt 5.6 a very good and solid basis to base your projects on.

As part of the LTS promise, we will be supporting Qt 5.6 for the coming three years, keeping it updated with regular patch level releases and bug fixes.

With Qt 5.6 being supported for a long period of time, we at the same time gain some more freedom in the upcoming versions of Qt. As such, Qt 5.6 will also be the last release that will work without requiring a C++11 compliant compiler. With Qt 5.7, we will also be dropping support for some older platforms.

For more information about our LTS promise, please have a look at the related blog post.

Infrastructure work

With Qt 5.6, we have been working a lot on the infrastructure that supports our development and releasing. The new continuous integration system (named COIN) is a project that we started around a year ago to overcome many issues we had experienced with the old Jenkins-based CI and releasing system. The new system is a lot faster in integrating and testing new changes that are supposed to become part of Qt. It also works much more incrementally, making it easier to bring all the repositories and source code that is part of a Qt release together.

We are now also producing most of the release binaries within the same system ensuring that COIN tests exactly the same configurations of Qt that are provided with the release packages, also cutting down significantly on our package generation time.

Another big advantage with the new system is that we can now efficiently support different configurations and platforms for different Qt branches; a big enabler that we had to have in place for making Qt 5.6 a long-term supported release.

Windows

While Qt 5.5 was mostly working on Windows 10, Windows 10 is now fully supported with Qt 5.6, both using the old win32 and the new WinRT APIs. Qt Applications can run on desktop PC’s, tablets and phones and of course be distributed through the Windows Store. Bringing your existing Qt-based application into the Windows Store should in most cases simply be a matter of recompiling it against the WinRT version of Qt.

With Qt 5.6, we are in addition providing binary packages for the Visual Studio 2015 compiler. Unfortunately, the Visual Studio add-in does not work anymore with Visual Studio 2015, as Microsoft changed their plugin infrastructure, but we are providing an updated version of the plugin for older Visual Studio versions. We’ve also started working towards creating a new Qt integration for the Visual Studio 2015 IDE.

For embedded Windows devices, Qt 5.6 adds support for Windows Embedded Compact 2013 in addition to the existing support for Windows Embedded Compact 7.

High-DPI support

A lot of changes went into Qt 5.6 that ensure that Qt works better on high resolution screens, on all platforms, extending the support we previously mainly had on Mac OS X. This allows applications that were originally written to work on standard resolution displays, to automatically scale to high resolution displays. Qt will automatically scale the UI to match the display, even when moving a running application between displays with different pixel densities. The new functionality can also be easily added into existing Qt applications, supporting both Qt Widgets and Qt Quick based applications. For more details check our the separate blog post.

As Qt is all-about cross-platform and over the past years we’ve worked a lot in making embedded development as seamless as desktop or mobile development, we’re really excited about a new device creation feature in Qt 5.6: A lot of convenience has been added to creating devices with Qt 5.6 by enabling embedded Linux development through Windows host computer. This allows developers to directly develop and deploy to their embedded Linux hardware from a Windows host computer. To learn more about this and how to get started, please see the separate blog post.

Finally, another big convenience for the embedded workflow with Qt for Device Creation has been the Boot to Qt software stack, that allows immediate start with Qt on a development board. The stack has been customizable through the Yocto Project tools before. Now, we’ve worked to improve our conformance with the Yocto Project and the Yocto meta layers so that it’s even easier to customize the Boot to Qt stack or pull in all relevant Qt pieces straight to your own Yocto-based builds.

For a full list of Embedded Linux news for Qt 5.6 with eg. board support updates see this blog post.

Qt WebEngine

Our Chromium-based browser engine, Qt WebEngine, has seen some major improvements since Qt 5.5. It is now based on Chromium 45, and with this comes a lot of new features and bug fixes from the Chromium project. In addition, Pepper plugins (PPAPI), such as Flash, are now supported. Qt WebEngine can now also honor the Qt proxy settings and the WebActions API that existed earlier in Qt WebKit has now been ported to Qt WebEngine.

We’ve also added a new Qt WebEngineCore module for new low-level APIs. This includes features such as support for custom URL schemes, intercepting and blocking network requests and for tracking and blocking cookies.

Finally, Qt WebEngine on Linux now uses many of the system libraries instead of bundled ones.

Other features

The Qt Location module that allows easy integration of maps, navigation and points-of-interests (POIs) to your Qt applications is now fully supported. The module is plugin-based, allowing you to select the location service provider backend, and to extend the API with your own backends. With Qt 5.6 we’re providing plugins out-of-the-box for HERE, Mapbox and Open Street Map backends.

Qt 5.6 has improved compatibility with C++11 and the STL by adding features such as reverse iterators for all our container classes, a key_iterator for QHash and QMap, and a const_iterator for QByteArray.

We’ve added a new QVersionNumber class, added support for HTTP redirection in QNetworkAccessManager and added many other smaller features.

OpenGL ES 3 support has been improved helping the development of embedded or mobile apps that want to make use of OpenGL ES 3 features.

Our dock widget infrastructure has seen quite some improvements, making it possible to programmatically resize docks, drop dock widgets into floating docks and re-arrange tabbed docks.

Qt Multimedia got a new PlayList QML type and an audio role API for the media player. Qt Canvas 3D now supports Qt Quick Items as textures and can directly render to the QML scenes foreground or background.

In addition, a huge amount of smaller new features, bug fixes and changes that improve performance and reduce memory consumption have gone into this release.

Removed content

With 5.6, Qt WebKit and Qt Quick 1 will no longer be supported and are dropped from the release. The source code for these modules will still be available. You can continue to compile and use these modules, but we will not be supporting them any longer.

For security reasons, the MNG and JPEG2000 image format plugins are not part of the binary packages anymore. Users needing those can still build them from source but should be aware of the fact that the underlying MNG and JPEG2000 libraries have known security issues.

Qt Creator

In addition, the release updates Qt Creator to the latest version, please have a look at the Qt Creator release blog for more details.

Preview of Upcoming Modules

The installer packages of Qt 5.6 also provide a technology preview releases for three new modules we aim to support with the upcoming Qt releases. Qt 3D, which has been available as a preview earlier, has received many improvements and new functionality. Qt Quick Controls 2 is a complete re-implementation of the previous Qt Quick Controls allowing greatly improved performance especially on embedded devices. Qt SerialBus provides a preview of two widely used industrial buses: CanBUS and ModBus.

New offering for start-ups and changes in open source licensing

Last week, we announced the details of our long-awaited offering for Start-ups. With the Qt 5.6 packages, that option is now rolled-out and available for purchase through the Qt webshop! For more details, read more about the Qt Start-up Plan.

In addition, earlier this year, we announced changes around our future open source licensing options, mainly moving from LGPLv2.1 to LGPLv3 and open-sourcing a lot of formerly closed components under GPL. These changes do not yet affect Qt 5.6 directly but everything we do from now on. Especially if you are developing with Qt under an open source license, you should read the announcement carefully to understand the forthcoming licensing changes. So, please see the related blog post and visit our Licensing FAQ for more details.

Learn more – Upcoming Webinars

Join us to hear all about the 5.6 release in our live overview webinar. Follow the link and register:

In addition, we have a whole line-up of webinars scheduled for the following weeks around Qt 5.6 features as well as other interesting topics. See the full events calendar for details and registration links!

Download

As always Qt 5.6.0 can be downloaded through your Qt Account web portal or from qt.io/download.

I hope you will enjoy this release. We are going to support the 5.6 series for a long term, which should make it a great basis for many software projects.

Some of those new features are related to the change of licence agreement. The platform / compiler support is also changing from 5.7+, so LTS from 5.6 seems sensible. Also, if you were to wait for 5.8 to be ready for LTS, the features in 5.9+ might look tempting too.

Then you’re out of luck, because the Chromium team does not like MinGW, so it will not compile with it. The Qt team could have made a mammoth effort and made this possible, but AFAIK decided that is wasn’t worth it.

I guess you’re talking about a 64 bit MinGW build (because we’re using actually a MinGW-w64 based MinGW).

Well, we’ve to build already quite a number of packages, and therefore do not want to provide both a 64 bit _and_ a 32 bit version. So it comes down to what the majority would prefer … Do you have compelling arguments to switch to 64 bit, instead of 32 bit?

Yes, my application simply cannot work in 32 bits. We work with 3D images and very large meshes. We commonly need 16 or 24 GB of RAM to run our application on the datasets we have. I currently have Qt 5.4 compiled with the 64 bit version of MingW64 that I had downloaded from this, now closed, project: https://sourceforge.net/projects/qt64ng/. It really works well! If you want to check it out it’s there: http://www.lithographx.org/. I also cannot (efficiently) use Visual Studio because they decided to abandon OpenMP after v2, and I use the v3 heavily.

That post about Visual Studio is from 2009. That’s *ancient*. It’s not relevant any more.

The only reason 32bit is still a thing on Windows is because Microsoft is greedy; they’re still selling separate 32bit versions of Windows which are cheaper than the 64bit versions. That people are still actively using a 32bit OS’s on 64bit CPUs is just ridiculous in 2016.

It seems that on Mac OSX qmake switched exclusively to libc++ and stdc++ is no more a option, even when c++11 is not used like this used to be until Qt 5.5.1 ?
This break the linkage with all the package we need to produce Qt apps on Mac….

The documentation for Qt 5.5 and 5.4 is no longer present on the website. Some of us are still stuck with using older versions of Qt 5 as those versions are the ones supplied in the repositories of certain not-yet-out-of-date Linux distributions, and I see no reason to remove the docs (for that matter, many languages and frameworks maintain their documentation even for obsolete versions). Are those gone by accident and will soon be restored or is there a way of getting a full copy of the documentation for those versions as used to be presented on doc.qt.io?

I see, I could not easily find that link from the main doc.qt.io page. It also does not help with Qt 5.4 (the standard version of Qt 5 supplied with Ubuntu 15.10, which is still has four months until its end-of-life date). The version of Qt Creator for that Ubuntu release does still have the correct documentation, but not everyone uses Qt Creator or wants to start it up just to check something in the documentation. What is the reasoning for such rapid removal of documentation for still-relevant releases? (While the 5.4 docs do not seem difficult to access via the docs’ git repository, using formatted HTML requires building from source, which should be a needless step for something that was once readily available online and for which no warning of removal appears to have been given.)

Hello, i’m novice to programming, and I have prety old HW (like ten years old 🙂 ), before i learn python, but I make decision to switch to c++. From my friend I hear for mingw (i do not want to run visual studio – becouse it’s resource hungry), and I want to create GUI apps with Qt (other solutions similar frameworks with small compilers just need some time to setup, but in qt is everything setup correctly for first use). But, when I try to run online instaler on Win 10, there is error massage which tell me that MSVCR120.dll is missing! On, windows, then I need MS compiler, or not? And, from prev. post i see that not all functions aviable for MinGW. My question is – is Qt in the near future planning to switch to some diferent c++ compiler (beside gcc) like clang, and if so, is then be similar lightweight like MinGW, witch make posible to develop apps on the less powerful machines, then for Visual Studio 2015?

Please understand that using the Microsoft compiler does not necessarily mean you have to use the Visual Studio IDE (though they come often enough bundled in one installer). You can use the Visual Studio compilers just as well with Qt Creator.

For MinGW, only the ActiveQt and WebEngine modules are not supported. There are no immediate plans to switch away from MinGW.

Regarding your issue with MSVCR120.dll, this might mean you installed Qt for MSVC 2013. You’ve the choice between different prebuilt versions of Qt, just install the one you want and have a compiler for. If you select MinGW the Qt installer will automatically install the toolchain, for all others you need to install the compiler separately.

If on the homepage qt.io I press “Developers”, it says Qt 5.5. So I guess you forgot to update.

Also, I noticed that the compilation of my program takes longer (50 minutes instead of 35 on GNU/Linux 64 bit and 40 minutes instead of 30 on Windows MinGW). I suppose because it compiles with the flag –std=gnu++0x.

Hi,
congratulations for the new release!
Is the module Qt3D going to be LTS? I’m asking because there are some bugs and improvements I’m interested in and I would like know if I should start having a look at the 5.7 alpha version.
Thanks