Tuukka Turunen

Windows 10 Support in Qt

Published Wednesday April 29th, 2015
10 Comments on Windows 10 Support in Qt
Posted in Visual Studio, Windows, WinRT

Exciting times are ahead for the Microsoft Windows platform, so we want provide you with an update on our plans. Windows 10 is approaching and there is a large amount of improvements coming with Qt 5.5, making the WinRT / Windows Store Applications support better. With this improvements, we would also like to announce that starting with Qt 5.5 we will offer the Qt port of WinRT/Windows Store Applications under the LGPLv3/GPLv2+/Commercial licenses.

Windows 10 Provides Compatibility with Existing Qt Applications

Microsoft has indicated that they are planning to release Windows 10 this summer, so many Qt users have been curious about the support level we are aiming to provide with Qt 5.5 and subsequent releases.

The good news is that all Qt applications created with earlier Windows versions will run on Windows 10 without any limitation. That includes classic desktop (Win32) applications as well as Windows Store Applications (WinRT). One thing to mention is that on Windows 10 also the Windows Store Applications will be windowed and not only in full-screen anymore. This is supported already if you have an application in the Windows Store and Qt 5.5 will provide further improvements to smoothen glitches on resizing.

Qt Offers Portability from Win32 to WinRT

The new API for Windows Store Applications (WinRT) is very different from the Win32 API used by the classic Windows applications. Therefore, a developer who has created a native Windows application needs to in essence re-create the application to use the new API for Windows Store Applications. Fortunately, the situation is much better with Qt-based Windows applications.

For any application which uses just the functionality provided by Qt, the only required step is to recompile your Qt for Windows application with WinRT port of Qt to make it a Qt for Windows Store Application. If your application uses native Win32, some further work is needed, but the Qt parts are really easy. Unfortunately, the automatic styling functionality is not available for the WinRT port of Qt, so although both widgets and Qt Quick work well, the application does not automatically get the platform style.

Improvements to the Qt for WinRT (Windows Store Applications)

Microsoft’s new API for Windows Store Applications is available in PCs, tablets, phones, and later on, also on embedded devices. A great value is that the same application can run across a wide variety of devices, and all the different kinds of devices can access the common store for applications. Qt applications have been available for earlier versions of both Windows Phone and WinRT for a while now, and we can leverage the same baseline for Qt 5.5 and Windows 10 support.

For Qt 5.5 we have put a lot of effort into further stabilizing and improving the quality of our existing Qt for WinRT port, which supports all variances of Windows Store Apps (desktop and phone). We have been going through the feedback from previous releases and addressed all the most requested items. Qt 5.5 greatly improves, for example, Multimedia support and Visual Studio integration/deployment.

Support for Visual Studio 2015

So far Qt for WinRT applications have been built with Visual Studio 2013, which continues to work with Windows 10. There is also a new compiler coming later this year in Visual Studio 2015, which is a major update on the development environment. Visual Studio 2015 Community Technology Preview (CTP) has been out for a while, so we have been doing some research on how Qt behaves against that and some commits are already in the 5.5 branch, while others are still a work-in-progress. Visual Studio 2015 is still under heavy development, so there are currently some workarounds needed to build Qt with it. After the final version is out, we intend to provide support for it in a Qt 5.5.x patch-level release, including pre-built binaries.

Furthermore, the first preview of the Windows 10 SDK has been released, which is valid for Windows Store Apps, including Windows 10 Mobile. We are able to compile Qt against that SDK as well, with a couple of changes required. Similarly as for Visual Studio 2015, we are planning to fully support Windows 10 SDK, after it is officially released.

Use of LGPLv3/GPLv2+/Commercial License

With Qt 5.5 we are changing the license of the Qt for WinRT port to be LGPLv3 / GPLv2+ / commercial license. We believe that LGPLv3 is a better and clearer license than the older LGPLv2.1, so we want to use it for WinRT / Windows Store Applications in Windows 10 (as well as Windows 8.1 and Windows Phone 8.1). The open-source licenses LGPLv3 and GPLv2+, as well as the commercial licenses of Qt, are compatible with Microsoft’s terms and conditions for the Windows Store.

To learn more why we want to use LGPLv3 in Qt and what it means, please check the blog post about introducing LGPLv3 license option and qt.io licensing pages.

Full Support for Windows 10 Coming with Qt 5.5.x

As Qt 5.5.0 is scheduled to be released before Windows 10, we aim to provide full support for Windows 10 with a Qt 5.5.x patch release after Windows 10 is available. Our intention is to provide initial support for Windows 10 already with the Qt 5.5.0 release, so that users can try out Qt on Windows 10 preview versions. As also the Qt applications created with earlier Windows versions will run nicely in Windows 10, we see that things are in good shape for the upcoming major new Windows release.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Visual Studio, Windows, WinRT


Benoit says:

Thanks for the update! The experience with Qt and Windows (8.1) has been very good so far for our app but we needed to wait for Windows 10 because of the GPS limitation in Windows 8.1 (location tracking in background is not possible), that’s why it is especially good news that Windows 10 for Qt is on a good track 🙂

One question regarding the Visual Studio requirement, until know we could only compile Qt with the Ultimate edition (2013). Is there any chance to get it working with the Express edition?

Maurice Kalinowski Maurice Kalinowski says:

the Express editions should be able to compile Qt as well, both win32 and winrt. In case you experience issues, I can only imagine that this is related to some SDK / Kit misconfiguration. However, it should work with a clean installation. Please report your issues on our bugtracker at https://bugreports.qt.io

Benoit says:

Thanks, I will try again. I think it was related to some missing include files which I could not find in the package but that’s just a vague memory 😉

Vladimir Moolle says:

Community Edition should do, too (+ offer some benefits over Express, potentially :))

Albert says:

I’m unclear on what the LGPL3 means since qtbase is still on LGPL2.1 and you can’t have different licenses per platform if the code is the same.

Could you clarify which code is actually LGPL3 licensed?

@Albert: Qt offers an option to license all modules, including Qt Base, with LGPLv3. With Qt 5.5 WinRT platform specific code license is LGPLv3 (or GPLv2+ or Commercial), so if you use the Qt on the WinRT platform you can take all the Qt modules you need using the LGPLv3 license.

Ian Monroe says:

What’s the QtWebEngine story?

Fritz says:

I would love to use QML/QtQuick together with a .NET backend. I’m getting sick of C++, but that’s not even the real problem. The real problem is, that very few of my younger colleages “speak” the langugage anymore.

Now that .NET Core is open source, wouldn’t this be worth investigating?

MihailNaydenov says:

@Fritz C++ much, much better investment right now.
Even MS is moving away from C#/.NET to modern C++ and that’s the main reason (IMO) to open source it. They are abandoning ship, but will never admit it.

I say this as a former C# fan, but I am SO glad I discovered Qt, which in turn make me like C++ 🙂

Fritz says:

Well, I’ve been using C++ for 20 years now, but many of my younger peers are just not interested in the language anymore. I’m not suggesting that Digia should abandon C++, but at least some official .NET bindings (using Microsoft’s now supported crossplatform .NET core) would be nice.

Commenting closed.

Get started today with Qt Download now