Qt 5.2 Alpha available

Published Monday September 30th, 2013 | by

Last weekend we started the release cycle for Qt 5.2 by branching our development code base into the stable branch. As a first step in the release cycle, the Alpha release of Qt 5.2 is now available. They are available from the Qt Project download area for the open source version and in your customer portal for Qt Enterprise users. The packages are source only and mainly for people already used to developing with Qt. Unless you feel comfortable compiling Qt on your own, you might want to wait for the beta which will come out within the next few weeks.

Apart from numerous bug fixes, Qt 5.2 offers a whole lot of new functionality. Here’s a short overview over the most important things

Android and iOS support

Qt 5.2 is the first Qt release to fully support development of Qt applications for Android and iOS. A lot of work has gone into supporting these two platforms, and now make Qt a great solution for development of mobile applications.

With the exception of WebKit, all essential modules are supported in both Android and iOS. This includes all of Qt Core, Qt Network, Qt Gui, Qt Widgets, Qt Qml, Qt Quick and Qt Multimedia. From the Qt add-ons Qt Sensors, Qt Graphical Effects, Qt Script and Qt SVG are supported. On Android a special Qt Android Extras module is also supported.

New modules

With Qt 5.2, we are also adding support for a couple of new add-on modules.

The last three add-ons contain platform specific additions, and complement the Qt X11 Extras module introduced with Qt 5.1.

Qt base modules

Qt Core got some new functionality, most notably the new QTimezone and QCollator classes. QTimezone is integrated with QDatetime and now allows proper handling of timezones. QCollator allows for locale specific sorting of strings, a long outstanding feature in Qt. Qt Network has received some improvements in its SSL handling. Qt Widgets has gotten lots of smaller improvements and a new QKeySequenceEdit class. Our Accessibility support has been greatly improved, with support for Mac OS X, basic support on Android and a set of public APIs that allow implementing accessibility support for custom widgets.

Qt Qml and Qt Quick

The QML engine has undergone some intensive work over the last 9 months, and the first results can be seen in Qt 5.2. Qt Qml is now using its own built-in Javascript engine and does not depend on V8 anymore. As such the QtJSBackend shared library has disappeared.

We are now using our own built-in engine instead of V8 for many reasons. One of the immediately visible benefits is that we are actually able to support Qt Quick 2 on iOS. In addition, the size of our Qml stack has decreased by around 5 MB and there’s one shared library less that needs to get deployed. Finally, it makes the whole stack a lot more maintainable and will thus allow us to improve the module at a faster pace in the future.

While the new engine is somewhat slower then V8 when it comes to pure Javascript performance, it allows us to optimise for the common use cases in QML and Qt Quick a lot better. Quite a lot of optimisation work is still ongoing now during the release cycle, and we expect to have comparable Javascript performance to Qt Script with 5.2.0. For QML bindings, we will see improvements for most use cases.

In addition, Qt Qml now supports File selectors to make it easier to customize your QML code depending on operating system and other variables.

Significant improvements also made it into Qt Quick. First and foremost, the module got a new scene graph renderer, that significantly reduces both CPU and GPU load for many use cases. The new Animator QML type offers animations that fully run on the rendering thread and won’t block or stutter even if your main thread has some long running calculations to perform.

The Qt Quick Controls have a couple of new Controls and features to offer. Switches and Busy Indicators got added, Table view now supports movable columns and extended selections. In addition, deployment has been greatly simplified.

Qt Creator

Last but not least, we are planning to ship Qt 5.2 together with a new release of Qt Creator, Qt Creator 3.0. The new Creator will feature an improved Android support, initial iOS support, extensions for multiple screens, a cleanup in the Creator plugin APIs and initial support for lldb.

Timeline

As you can see, Qt 5.2 will contain a lot of great new features and especially the support for mobile operating systems is a huge step forward for us. With the Alpha out, we are now in working hard towards providing a Beta as soon as possible. The Beta will again include binary packages. After the Beta work will go on towards the Release Candidate and Qt 5.2.0 final, which we hope to release by the end of November.

There will also be many talks about Qt 5.2 and its new features during the upcoming Qt Developer days in Berlin and San Francisco. So if you want to find out more, come and join us there.

I’d like to invite everybody to give 5.2 a try and report any issues you find back to our bug tracker.

Did you like this? Share it:

Posted in Uncategorized

77 comments to Qt 5.2 Alpha available

Orgad says:

Congrats!

Please fix QTBUG-33039 in 5.2. It is extremely annoying.

Robert says:

When you predict to do api mapping on ios and android and windows phone?

Sylv says:

Thanks for this release! It’s a real step forward for Qt.
Have you got some news about the integration of Qt3D? It was scheduled for 5.2 but it’s not there, is it rescheduled for Qt 5.3?

Ionut Dediu says:

I would also like to know about the status of Qt3D. Please, please, please make it available in 5.2

DiA says:

I am also waiting for Qt3D. Would be very nice to have it in 5.2

Sean Harmer says:

Hi Sylv, Ionut, DiA,

I know you were hoping to get Qt3D as part of Qt 5.2. However, the re-write is taking longer than expected and is not in a state where we can commit to API’s yet. We now have most of the building blocks that we want into QtGui.

We will release a tech preview of Qt3D as soon as we can.

Sylv says:

Hi Sean,
Thank you for your answer, is the current evolution of Qt3D somewhere on git (on a branch?) or is it on a private repository? Will it be possible to only compile Qt3D (tech preview) using the prebuilt binary version of Qt 5.2?
I hope to see Qt3D part of Qt 5 soon to switch to Qt5…
Anyway keep up the good work!

Ionut Dediu says:

I can understand that good APIs take (and should) some time so I’ll wait for it in Qt 5.x.
However consider Unity3D: already very popular and well established for game development. They are the WOW of cross platform game development. But what if they decide to implement some 2D widgets and some wrapper APIs for networking, file management etc? Then Digia will have a very powerful native cross platform competitor framework. And with all the attention US media will give to Unity3D …

Ionut Dediu says:

For what it’s worth Qt3D really makes 3D development fun and easy just like QML does it for UI programming.

Martin says:

Hurry up guys, a lot of people really waiting for Qt3D. Including me :)

Dmitrii says:

Our team is also waiting for Qt3D release. Now we have to build from sources as is. Thank you anyway for your work. It’s great!

qtxmlpatterns is not mentioned in the available modules of 5.2 alpha. Is this module no longer maintained ? The available classes for XML parsing don’t allow an efficient search inside large XML files, this is why such a module is of interest.

air-dex says:

You mean Qt XML and not Qt XML Patterns, don’t you?

qtxmlpatterns is still supported. It did not get mentioned because, like qtscript and qtsvg, it has got no new features in Qt 5.2.

Robin Lobel says:

Yay! Do you plan having full iOS dev support within Qt Creator eventually? (Qt Creator 3.x)
So that we could dev iOS apps within Qt Creator, without to rely on XCode editor?

Espen says:

What are the file sizes of a Hello QML app for Android (.apk) and iOS (.ipa) with 5.2?

How many megs are we talking about?

Congrats :)

it depends whether you bundle Qt with it or not. I made a demo app and without qt dlls it was about 8MB IIRC

Eskil Abrahamsen Blomfeldt says:

A default “Hello World” APK in Qt Quick 2 which includes the necessary Qt libraries, plugins and imports will be around 9 MB.

Danny says:

Good news and I’m please to see QtMacExtras integrated: Getting that to build and link simply to restore functionality that was part of Qt 4.8 was a PITA.

However there has been a *huge* amount of regressions in Qt 5 so far, many of them avoidable (like removing the Q_WS_MAC macro without actually checking how it was being used internally).

From a QWidget developer’s perspective, Qt5 has been very disappointing so far. We should have stayed with 4.8 for a while longer.

Jens Pfeifer says:

Qt Creator is quite nice, but gets absolutely unusable in the moment when you start to use the Boost library (Qt creator’s file indexer gets overcharged.)
It’s reported as QTCREATORBUG-9544, but nobody seems to care. I cant’t believe I’m the only developer using the Boost C++ library?!

tr3w says:

No, you are not the only one, I also used boost with Qt Creator a couple of months back, but without any issue…
Which part of the boost library do you use?

Ecir says:

Dear Lars Knoll, dear Qt team!

First let me say thank you for the alpha, it is amazing how quickly the Qt progresses.

Please, I have a question: I can imagine the huge amount of work which goes into bringing new features but are there any plans for more bug fixing? Could you, or someone else, comment on this? You ask for reporting issues – and I did – but right now the bug tracker has 10 000 unresolved issues, some of them which affect me directly. Thanks in…

First of all, we fix bugs every day and every week. Sometimes we forget to close the task on the bugtracker. But more frequently, there are simply more bugs reported than we have capacity to fix bugs.

In any case, the period before the alpha is when we develop features. After the alpha, we go into bugfixing mode, since Qt 5.2 is feature-frozen now. Our objective is to fix as much as we can so we’re proud of the 5.2 release.

Yop says:

Obviously the bugs that Ecir is talking about are not those that are fixed after the alpha. Those fixes are for the new features that have been developed before the alpha.

The problem are plenty of bugs for Qt Widgets, Qt SQL, Stylesheets….

I understand that there is not enough capacity to fix all bugs. But I don’t see any Progress at all in those mentioned areas.

Danny says:

Bugs in new features is one thing, but regressions in mature components are far worse.

The old Trolltech would never have released Qt in this condition.

I’m so fed up of having to hack around the same old broken features.

Lars Knoll says:

Fortunately that’s simply not true. I’ve been both in Trolltech and now in Digia. We now have a much better coverage if Qt with automated tests, a CI system that prevents regressions to these tests and automated sanity checking of packages. On top of that a lot of manual QA for each release

Trolltech only had the manual QA. But it was a much smaller release with no binary packages, no Qt Creator and many other modules not there.

Danny says:

@Lars Knoll

Your unit tests have been failing since Qt 5.0 (QTBUG-22775).

Yop says:

@Ecir: I totally agree with you. There are hundreds of bugs that effect basic functionallity. For example the QDoubleValidator or the whole Qt SQL Module. But obviously these are regarded as legacy modules that are not worth putting much efforts in it. Diga seems to put more efforts into new platforms, charting and cloud computing. I am not interested in those new features as long as the basics are so buggy.

Tuukka Turunen says:

@Yop, Ecir: There are always many bugs fixed with each new release, but it is quite natural that as highlights of what is coming we mention all the new things. But rest assured, Qt 5.2 will also see many improvements in the basic functionality – just as every new release. We also have quite extensive testing setup and policy for regressions, so we really do try very hard not to break something when fixing bugs.

Ecir says:

Yop, Tuukka, Lars,
thanks for the replies!
As you released the Alpha just now I couldn’t possibly be talking about bugs in alpha phase. I was talking about the current 10 000 unresolved issues and the fact that as I watch the “Issues: 30 Day Summary” of QTBUG for maybe last half a year the bug count just keeps growing. It surely helps that you have automated checks but a user (or two) just told you that it does not help enough. One can also read your replies as Qt becomes too complex to…

Ecir says:

…to handle.

Andreykonn says:

So there are still no native-looking Qt Quick Controls for mobile? That is very serious deficiency.

Benoit says:

Let me correct you: that’s great that we have Qt Quick Controls and we are looking forward to having “native-looking” controls!

Andreykonn says:

They were planned for qt 5.2!

Mousavi says:

Good news! Thank u guys
Can you tell me why Qt is not compilable staticaly?!
(QTBUG-28357)

Dasun says:

Thank you! I was waiting for QTimezone. You guys are awesome.

Rao says:

The new v4 code does not compile for our mips platform.

In file included from jsruntime/qv4engine.cpp:71:
compiler/qv4isel_masm_p.h:219:2: error: #error The JIT needs to be ported to this platform.
compiler/qv4isel_masm_p.h:229:2: error: #error Stack alignment unknown for this platform.

MIPS does not have JIT implemented yet. I tried to disable JIT by hardcoding in some pri files but that did not work – I was seeing some error like LLIntcode undeclared. When do you plan to support MIPS?

Marius says:

Sorry I can’t help you but I just had to know ( curiosity ) what is the MIPS platform where you plan to get Qt5 working ? If you can say of course.

Lars Knoll says:

The JS engine used by Qt Qml in 5.2 has an interpreter. We should be able to get that one working on MIPS without too much trouble. It’s probably mainly about tweaking the pro files to not build the JIT.

Hnefi says:

That is unfortunate. Is enabling the interpreter for MIPS something that can be expected to be done relatively soon (a month or two)? If not, any pointers on where one might start hacking to get this work?

Awesome work again by Qt devs. Thanks a lot people!

Hj says:

Out of the box OpenSSL for android? Any resolution to/progress on this issue yet? A mobile app without HTTPS is pretty unattractive and unuseful. Should I wait until Qt WebEngine is available? Is it impossible to have QNetworkAccessManager work for HTTPS before then without rebuilding Qt with OpenSSL enabled and compiling OpenSSL from the source with Android NDK, which is not that easy?

a dev on IRC told me that with 5.2 you won’t have to build Qt yourself anymore, but you will still have to package (include) the dll’s yourself. so, big improvement

Eskil Abrahamsen Blomfeldt says:

As Matthias said, the SDK builds of Qt will include run-time support for OpenSSL in Qt 5.2, which means that as long as the necessary symbols are available, they will be used. Since OpenSSL is not part of the native API on Android and because it cannot be included in Qt due to legal reasons, you will have to include OpenSSL libraries in your app to ensure it’s forwards-compatible. This is the same requirement we have on other platforms, such as Windows.

There are OpenSSL repositories online with build files for Android, and we’ve added UI in Qt Creator 3.0 to make it simple to add external libraries to your application.

Marius says:

One thing I do find missing from this release is support for Gstreamer 1.0 which is a big overdue.
Will this be in Qt 5.3 ?

As a developer I know how bad it is when you have bugs in your framework and while yes Digia could fix them ( and they do fix many of them ) let’s not forget that Qt is open source. It may not be easy but you can fix bugs in Qt even if you start with no idea about it.

m][sko says:

unofficial gstreamer 1.0 support
http://qt-project.org/forums/viewthread/21995

stereomatching says:

Bugs really is a problem, I am using Qt in my own research and persoanl project and enjoy it, but it is hard to persuade the boss to leverage Qt5 before we could make sure Qt5 is as stable as Qt4, many companies are pretty conservative.

maour says:

thanks a lot,

Any news about engini.io integration with Qt 5.2 ?

Soso says:

Hi,
Will Qt 5.x support 3D on iOS using openGL?

Tuukka Turunen says:

@Soso: Qt supports 3D and has done so for many years. There were some questions about Qt3D convenience library, which is not yet final. But for sure you can do 3D with Qt – and fully leverage OpenGL.

Oliver says:

Are there any news regarding the Accessibility APIs that were promised for Qt 5.1 (see Here) but still missing?
Thanks!

Robert says:

WHEN THERE WILL BE API MAPPING FOR Android and iOS?? comparing to Marmalade product qt is still unusable!

Benoit says:

Maybe your demand would me more efficient if you were a crown?

HGH says:

Hopefully, you’ll make a binary MinGW beta release too.

Anonymous says:

What about Windows CE support?

Wellu Mäkinen says:

Can you guys post some screenshots of Qt app running on iOS? Would love to see how “native” it looks. Transitions, buttons, other widgets etc.

Another question: how does Apple feel accepting Qt apps in their store? If they block Qt apps from their store then Qt on iOS means nothing really.

Keep up the good work!

What you get from qmake is a XCode project with statically linked libraries. So besides size, there is no difference wrt applications developed in Objective-C. I don’t see any reason why Qt-based applications should not be accepted by Apple.

Eskil Abrahamsen Blomfeldt says:

There are already Qt applications in the app store.

Here’s an example:
https://itunes.apple.com/us/app/subattack/id659283830

It’s not designed to look native, but proves that Qt applications are not disqualified from being published there.

黄文威 says:

都支持Android和IOS开发了。厉害

VilleL says:

Great job! Qt seems to be better than ever.

But. Do you have any plans for hardware accelerated video in QtMultimedia, used by Qml-type Video?

HWA-Video earlier was easy by using Phonon and Mplayer-phonon plugin (yes, I really mean easy). But now it has something to do with gstreamer, and even when I can have an accelerated gstreamer on command line pipeline, there is no something like that happening on qml.

Or is this a configuration issue?

Tuukka Turunen says:

@VilleL: It is already there, depending on your platform configuration.

ShiftZ says:

Waiting for QtCreator with decent LLDB.
GDB blows my brain.

Werner says:

Thank you guys for another alpha release! Its really great to see Qt growing and developing. I think there are a lot of people out there that really value all the work you are doing. Sure, sometimes there are problems and bugs – but it really makes me sick reading comments of people just demanding and complaining (“as long as you don’t to this or that Qt is complete fail or crap”).
Anyways, thumbs up!!

What is the integration of QML applications written for iOS with VoiceOver ? Do you consider using Qt only as backend for an application written for iOS, while the front-end is still written in Objective-C for native look and feel ?

Frederik Gladhorn says:

@Christea Bogdan VoiceOver support is working on OS X now and we have the first bits for Android’s TalkBack in place. Accessibility has improved a lot, but for now there is no support yet for iOS-VoiceOver. Hopefully we can benefit from the desktop work and once the basics are in place both QWidget and QtQuick based apps should be accessible.

M.S. Babaei says:

I’ve been busy with an Qt-based Android app for last two month. Aside from some annoying bugs for a preview release it looks promising. In addtion to the new features, I hope 5.2 addresses these annoying bugs.

AcchariBalaka says:

First let me thank you guys for the release of 5.2 alpha. You guys are awesome :) . I have a question regarding sql drivers for Android and iOS. Does 5.2 ship postgresql sql driver as in Windows? (qsqlpsql.dll)

Jan Faroe says:

Very happy to see that Qt*Extras for Win and Mac OS is in this release! Better late than never ;-)

Benoit says:

Any plans to release a QtWidgets-free version of QtQuickControls for Android and IOS?

The alpha release works fine with the Android simulator (with GPU on) and the latest NDK+SDK versions (except for a few compilation errors which have been fixed in git). QtQuick2 applications without Controls runs fine but I did not manage to make it work with QtQuickControls (I tried to compile it without QtWidgets but the program exits with fatal signal 11 SIGSEGV).

Thanks for the great work so far!

Eskil Abrahamsen Blomfeldt says:

The crash when using controls (and some other QML) in the current Qt 5.2 alpha is due to a bug in the JIT in V4, I think.

You can track the bug here:
https://bugreports.qt-project.org/browse/QTBUG-33892

To work around it for now, configure QtDeclarative without JIT before building it:

% qmake -config disable_jit

This should hopefully fix the issue.

victor says:

Excellent job, we are proud of you.
I hope you make any improvements or add new features to QtSQL module to keep pace with the new features added to DBMS (databases) that are currently most required in today applications.
Database applications has a huge market, so please give more attention into this field in this Qt5.2
It will be happy if you can talk about Qtsql here or opening a new topic especially about it.

Thanks in advance

jazer says:

Why don’t you provide Qt 5.2 as LGPL+Static Linking (e.g. like google does with http://openscales.org/license/index.html)

This would avoid all the legal discussion for the iOS development. I know you would like to see the devs use the commercial one before the lgpl, but as an indy it’s hard to invest 6k for a AllOS version at the beginning. I would prefer to start with the lgpl+sl and see how successful it will be – and if so, I would buy in for a commercial license.

But the current risk with lgpl and the very high invest (for an Indy) prevents Qt for development, even if it looks very promising.

Fabio says:

I maintain a QWidget application developed with Qt4.x and ported to Qt5.1 hoping to run it on Android but I’m stopped due to some annoying bugs that prevent GUI ti work well on Android.
For example, cannot correctly maximize the main application windows, or missed refresh when a QMessageBox or other dialogs are opened and other similar glitches.
At the time I’ve posted on the Qt forum:
http://qt-project.org/forums/viewthread/29854

Is there someone who know those things where fixed in 5.2 branch?

Eskil Abrahamsen Blomfeldt says:

The best way to know would be to try. If they are not fixed, please make sure they are reported in bugreports.qt-project.org. Also make sure you specify the device and Android version you are using, and please attach an example to reproduce the issue (or point us to a Qt example which can be used to reproduce it.)

Fabioo says:

Look at the comments posted here on July 27, 2013 (search for “Fabio” ti find the relevant entries):

http://blog.qt.digia.com/blog/2013/07/23/anatomy-of-a-qt-5-for-android-application/

As reported from the user “Robert” there are already several bug reports regarding those issues:
__________________________________________

Gentlemen,
I believe that most issues referred by Fabio are already filed, e.g.:
QTBUG-32537 – Android: Wrap-Content Default Behavior Broken for QWidgets
QTBUG-32348 – Android: Heap Allocated Modal Dialog After Closing Prevents Input to QTextEdit
QTBUG-32297 – Android Modal Dialog without Sizes Set Crashes or Stacks Application
QTBUG-31026 – Repaint artifacts when using combo box on Android (raster plugin)
QTBUG-30143 – QWidget::showFullScreen() does not get right screen resolution in Android
and many others.
[...]
______________________________________________________

msantala says:

Great job.

But could you guys atleast leave some mention that the single packages on Qt project download area are not all the same. I spend too much time trying to figure where the windows configure.exe is after I downloaded the tar.gz packed version while – obviously – I should have downloaded the .zip package.

saneba says:

Merci Boucoup

Commenting closed.