Tuukka Turunen

Qt 5.12 LTS Beta Released

Published Friday October 5th, 2018
28 Comments on Qt 5.12 LTS Beta Released
Posted in Biz Circuit & Dev Loop, Qt, Releases

I am pleased to announce that we released the first beta of Qt 5.12 LTS today. Qt 5.12 LTS is expected to be a solid development base and to receive multiple patch-level updates during its three-year support period. Once released, we recommend updating to Qt 5.12 LTS for both current and new projects. We have convenient online binary installers in place so you can try out the upcoming features coming in Qt 5.12 LTS in its first beta state. We will continue to provide subsequent beta releases via the online installer. 

There is a huge number of things to talk about, so I’ll go through just some of the highlights of Qt 5.12 LTS in this blog post. For a more detailed overview of the new features coming in Qt 5.12 LTS, please check them out on the Qt 5.12 wiki page. We will also provide multiple blog posts and webinars for a more in-depth look at the Qt 5.12 LTS features.

Long-term support

Qt 5.12 LTS is a long-term supported release. It will be supported for three years, after which you can purchase extended support. As an LTS, it will receive multiple patch-level releases that provide bug fixes, improvements and security fixes. If you are about to begin a new project, you may want to start with Qt 5.12 LTS pre-releases already now. For ongoing projects, migration to Qt 5.12 LTS is recommended after it is released.

Qt 5.9 LTS entered ‘Strict’ phase at the beginning of February 2018. Going forward, Qt 5.9 will continue to receive critical bug and security fixes during the ‘Strict’ phase. We also continue to create new Qt 5.9.x patch releases during the ‘Strict’ phase, but at a slower cadence than before. The oldest Qt 5 LTS release, Qt 5.6 LTS, is in the last steps of the ‘Very Strict’ phase and has for a while received the most important security fixes only. There are no new patch releases currently planned for Qt 5.6 LTS. Those still using Qt 5.6 LTS should plan an update to a more recent version of Qt, as support of Qt 5.6 LTS ends in March 2019.

The reason for gradually reducing the amount of changes going into an LTS version of Qt is to avoid problems with stability. While each fix as such is beneficial, they also bring a risk for behavior changes and regressions, which we want to avoid in LTS releases.

Performance

Improved performance and reduced memory consumption have been important focus areas for Qt development already for Qt 5.9 LTS, and we have continued this for Qt 5.12 LTS. We have done multiple optimizations to the graphics and other functionalities, especially for running Qt 3D and Qt Quick on embedded hardware.

Qt 5.12 LTS provides good support for asset conditioning and improves upon the functionality introduced with Qt 5.10 and 5.11. One important new feature is the support for pre-generated distance field caches of fonts, which provides faster startup times, especially with complex and non-latin fonts.

The QML engine has also received multiple improvements and optimizations. Specifically, we focused on optimizing the memory consumption for Qt 5.12 LTS.

TableView

One of the most requested new controls is TableView and with Qt 5.12 LTS we finally provide it. The new TableView item is available in the Qt Quick module. TableView is similar to the existing ListView, but with additional support for showing multiple columns. We have developed the new TableView with performance in mind, with architecture that allows efficient handling of large tables. For a more detailed overview of the new TableView, please check the recent TableView blog post.

In addition to introducing the new TableView, Qt 5.12 LTS also provides multiple improvements and new features in Qt Quick Controls 2, as well as in the Qt VirtualKeyboard.

Input handling

With Qt 5.12 LTS, we introduce the new Input Handlers as a fully supported feature (earlier know as Pointer Handlers, a new approach for mouse, touch and gesture event handling). We have worked in this area for quite some time, and now it is ready for prime time. The main issue addressed with the new functionality is versatility, especially in multi-touch and multi-monitor applications. Those were areas where the previous functionalities have not been enough to tackle all use cases. The new functionalities enable many different input mechanisms in Qt applications, for example, based on hand gestures detected by a camera or a proximity sensor.

Input Handlers provides a QML API for recognizing and handling the most common mouse, touch and multi-touch gestures (press-hold-release, drag, swipe, and pinch) from mouse and touchscreen, in parallel across the scene. You can interact with multiple items simultaneously, across multiple screens when necessary. There is also a C++ API available, but that is still defined as a private API with Qt 5.12.

Python, Remote Objects and WebGL Streaming Plugin fully supported

Based on Qt 5.12 LTS we also provide an update to Qt for Python, initially released with Qt 5.11 as a technology preview. The Python community is very active and growing, so we are extremely happy to provide Qt for Python as a fully supported feature of Qt 5.12 LTS. You can get started conveniently with Qt for Python via the PyPI (Python Package Index).

In addition to Python, Qt Remote Objects and Qt WebGL Streaming Plugin are fully supported with Qt 5.12 LTS. Qt for WebAssembly continues to be a technology preview with Qt 5.12 LTS.

Tools for designers and developers

To get the maximum out of Qt 5.12 LTS we also have updates to our tooling underway. The upcoming Qt Design Studio 1.0 will will leverage a pre-release of Qt 5.12 LTS and will support final Qt 5.12 LTS when available. Qt Creator 4.8 is planned to be released together with Qt 5.12 LTS, offering a good set of new functionalities (e.g. support for multiple new programming languages and multiple simultaneous debugger sessions). As always, Qt Creator 4.8 will also work with earlier versions of Qt. In December we are releasing Qt 3D Studio 2.2, which is directly based on Qt 5.12 LTS and takes advantage of the numerous 3D related improvements of Qt 5.12 LTS.

Next steps towards the final release

After the Qt 5.12 LTS beta 1 released today, we will push out multiple new Beta N releases using the online installer. With this approach, it is easy for users to test the new features and provide feedback. During the beta phase, we expect to have new beta N releases within one to two weeks intervals. When we have reached a sufficient level of maturity we will create a release candidate of Qt 5.12 LTS. It will be made available directly via the online installer. We are not planning to publish separate blog posts for the subsequent beta releases and release candidate(s). In addition to binaries, source packages of each beta release are of course also available for those who prefer to build themselves.

Get Qt 5.12 LTS Beta

I hope many of you will install the Qt 5.12 LTS Beta releases, test and provide us your feedback to complete Qt 5.12 LTS. For any issues you may find, please submit a detailed bug report to bugreports.qt.io (please remember to mention which beta you found the issue with, check for duplicates and known issues). You are also welcome to join the discussions in the Qt Project mailing listsdeveloper forums and to contribute to Qt.

If you do not yet have the Qt online installer, get it from the Qt Account or from the Qt Download page.

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

Posted in Biz Circuit & Dev Loop, Qt, Releases

28 comments

AlGrenadine says:

As a LTS, Qt 5.12 should really support ios 32 bits, not only 64 bits

@AIGredadine: Apple has since quite a while offered 64bit devices, so 32bit is only needed for quite old iOS devices. If you need to address these old iOS devices with your application, Qt 5.9 LTS still supports 32bit ARMv7 instruction set on iOS.

AlGrenadine says:

Yes i know but a lot of users don’t care about that, they simply want the app to run on every ios device…

Hm says:

I also think that Qt is being too aggressive with regards to macOS and iOS version support (especially macOS because there is a huge user base with older versions. iOS user base is pretty much iOS 10 and 11 and manual compilation works fine with 32bit as well). Also mingw32 should still be provided for Win32 systems.

Robert says:

Will the Input Handlers C++ API become public in time for the 5.12 release?

rp says:

They said it will be private in 5.12 release, which I don’t understand why. Why do they keep it private to begin with?

Robert says:

So they can still make changes to the API without breaking compatibility. It’s pretty common practice I understand, until they feel the API is stable enough.

CarelC says:

Since Qt 5.12 will be LTS, can’t https://bugreports.qt.io/browse/QTBUG-67527 please get some priority before getting released.

Alexey says:

As I see android release still built with gcc… Will you provide prebuilt clang based android release?

Markus says:

You’re wrong: 5.12 Beta is (at least on Windows hosts) the first prebuilt package for Android using clang!
You probably got misleaded by Qt Creator, which always says gcc for a detected ndk. Clang or gcc are selected based on the mkspec which was used for building qt, even if Qt creator calls the ndk “compiler” gcc 🙂

Vladimir says:

Does it mean that I have to update the Android NDK to the latest version (which switched to Clang)? Currently any compilation I do will result in a faulty APK. All projects I tried fail with this message:

AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “__emutls_get_address” referenced by “/data/app/org.qtproject.example.mousearea-pMXVi0LURK3DYhf3xDsEDw==/lib/arm/libQt5Core.so”…

Is it because of GCC and Clang incompatibility or is there another problem?

Markus says:

They are using 16b to build Qt (select the build logs in the Qt installer, open the build log for “Android ANY” QtBase, search for configure call -> this is where you see how Qt was configured), and using this version works fine for me, both with Qt 5.9 gcc and with Gt 5.12 Beta1 clang. The recommendation to use NDK 10e is for building Qt only, not for building applications with it AFAIK. There are issues on the bug tracker regarding later NDK versions, not sure how these affect building applications.

Vladimir says:

So you use NDK 16b and it works for you? And which settings and compiler you use to compile applications?

I used NDK 17 with older Qt versions and everything works fine. But Compiling anything with Qt 5.12 fails with the error I mentioned. I also tried to upgrade to NDK 18 (with Clang) but this doesn’t work at all because Qt creator doesn’t recognize the compiler.

P.S. I use Windows if it matters.

Ray Gray says:

Same question here. I’ve tried all possible sdk/tools/ndk combinations but the app always crashes with “__emutls_get_address” error…

Ray Gray says:

Thanks Markus, it actually works with NDK16b! See my post here: https://forum.qt.io/topic/95406/qt-5-12-beta-android-clang-app-crash

Mohammad says:

Please fix the following bug:
https://bugreports.qt.io/browse/QTBUG-70303

Ray Gray says:

I’m also eagerly waiting for the latest Android NDK to be (finally) properly supported…

Sandro F says:

Amazing! Latest NDK and clang supported? Can we completly remove all gcc and gnustl stuff?

Nikita says:

LTS without MinGW 32 bit, VS 2017 32 bit, Android AArch64 and Android with clang… It can’t be LTS. Google will decline 32-bit only applications from August 2019. And I still need 32 bit support on Windows.

stlcours says:

Agree, I also need 32 bits application!!!

Jani Heikkinen Jani Heikkinen says:

VS 2017 32bit target will be added in beta3 release

Alexey says:

TreeView is even more requested than TableView.
Would be great to see it in 5.12

amyhaber says:

agree, TreeView please, I waited it for years !!!

Konstantin says:

Should it support macOS 10.11 target? I’m getting “Qt requires macOS 10.12.0 or later”.

Robin says:

I’m wondering about that as well.
Official doc says it supports 10.11 and higher : http://doc-snapshots.qt.io/qt5-5.12/supported-platforms.html
But wiki only says 10.12 and higher : https://wiki.qt.io/Qt_5.12_Tools_and_Versions

xABBAAA says:

great, the very best products never stop to evolve…

the very best will evolve toward the better one and never be afraid to reach the perfection…

and what I would like to see is something like Qt designed environment that creates HTML5 file like the Flash they had before. One creates very simple 2D animations and just use them in the web…

Tommy says:

Qt 5.12 doesn’t build with C++11 compiler, because of using std::make_unique. Is this intentional?

Kai Koehne Kai Koehne says:

No, this is a mistake. See also https://bugreports.qt.io/browse/QTBUG-71010

Commenting closed.

Get started today with Qt Download now