Qt 5.1 Alpha Available

Published Monday April 8th, 2013 | by

Two weeks ago we initiated the Qt 5.1 cycle by merging our development code base into the stable branch. Since then, the release team has been working on stabilizing the branch and we now have the first set of Qt 5.1 packages available. They are available from the new download.qt-project.org area for the open source version and in your customer portal for commercial 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.

A lot has happened since the Qt 5.0 release in December, and I am truly impressed by the amount of new things that we managed to get done for this alpha release. Let’s have a short look at the most important new features.

Android & iOS

To start with, we have added preliminary support for Android and iOS to Qt 5.1. This release is fully usable on both platforms and you can begin to develop for both OSs immediately. All of qtbase (Qt Core, Gui, Network etc.) is implemented. Qt Quick works very nicely on Android and most sensors are supported. There are, however, certain limitations. Some parts of Multimedia are not fully implemented and Qt Quick is not yet working on iOS. Tooling is also still a work in progress, and not everything can be done from within Qt Creator yet, but many things are already  working nicely and smoothly.  As announced last year, full Android and iOS support will come with Qt 5.2, but Qt 5.1 provides a solid base for developers to create full applications for these two platforms.

Introduction of Qt Quick Controls

Then, we finally have cross-platform controls for Qt Quick. The modules ((QtQuick Controls (formerly known as Desktop Components)and Qt Quick Layouts) offer ready- available controls and layouts you can use to build your user interface, starting from buttons, layouts, over menu and toolbars to dialogs and high-level navigational controls. Of course, they have the look and feel of native widgets of the underlying platforms. They are currently implemented for the desktop operating systems, support for touch-based platforms will get added for Qt 5.2.

Add-ons

A couple of new modules got added as well. First of all, we brought back Qt Sensors as an add-on. The module is currently supported on Android, iOS, BlackBerry and Mer (Sailfish). A module for controlling serial ports (Qt SerialPort) has also been added, and we have an X11 specific add-on (Qt X11Extras).

Finally, we have added many other smaller features to the existing modules. For more details, please have a look at the Qt 5.1 feature list.

From now, we will start work on Qt 5.1 beta, which I  expect to be released a few weeks from now. Following that, Qt 5.1 final can be expected to come before the beginning of summer. Let us know what you think of our Qt 5.1 alpha. Enjoy!

 

 

Did you like this? Share it:
Bookmark and Share

Posted in Uncategorized

78 comments to Qt 5.1 Alpha Available

Sunil says:

Congrats to everybody involved!

Can we expect preliminary support for Quick 2.0 in iOs? (with v4vm JS engine or something?) It doesn’t have to be fully working but to get started with development of apps that could potentially be shipped to app store when 5.2 is out.

I have to second Sunil.

There is one thing that spoiled my enthusiasm about this release: “Qt Quick is not yet working on iOS.”.

I cannot stress how important Qt Quick is for mobile development. I have developed only once a mobile app based on widgets, and I will never ever try that again. It takes too long, it is extremely buggy, code is extremely hard to follow and if you want your app to look decent, you would have to write stylesheets for each and every screen resolution and orientation. So if Qt for iOS doesn’t support Qt Quick, it would hardly be of any use for mobile development.

I have developed many mobile apps using Qt Quick and I have already published them on Android and other platforms as well. Qt Quick is indispensable for me. I am aware that some licensing issues have arisen on iOS, which put in doubt Qt Quick 2 for iOS. Even so Qt Quick 1 for iOS would be good enough for me for a while.

Another issue for mobile development on iOS and Android would be how you manage the distribution of the Qt libraries. More than 75% of the bad reviews for my Android apps ( you can see them on Google Play and Amazon AppStore ) come as a result of users not understanding the current process of installing a Qt app. First they have to download the Qt app, then they have to download Ministro, then they download the Qt libraries and finally if they haven’t got fed up they will maybe run the app. The users don’t understand this process, they don’t like it, they even hate it and based on the install numbers and the in-app analytics I get, I can surely say that more than a 35% of potential users are lost during this process. This must be fixed. The Qt libraries should be bundled with the app, or Ministro’s functionality should be included inside the app. The user then should be able to install a Qt app on Android and iOS in just one step. I have already made more than 6 million downloads with Qt apps on Android alone and I think this is and should be a pretty relevant issue to be solved as soon as possible.

Finally, some questions. It would be nice if someone from Digia could answer me these.

1) How soon can we get a solution to statically build Qt apps for Android and iOS distribution? Another solution would be to implement Ministro’s functionality inside a stand-alone app? Will there be a Ministro or Nokia Smart Installer for iOS ? What would be the licensing implications for that?

2)I want to publish iOS apps on the AppStore asap if not sooner. I have read on some websites that iOS isn’t that friendly to the LGPL license and because of some technical limitations a Qt developer would be forced to opt for either a GPL license or for a commercial license. When will Qt be supported for publishing Qt Quick apps to the iOS Appstore (even if it doesn’t reach a tier 1 status)? Does this vary on the type of license I use, whether it is LGPL or commercial ?

3) How is Digia planning to sell Qt licenses? Will there be a one time fee, or an annual subscription fee? How will these prices compare with the competition? Other cross-platform SDKs providers have their price tags on display, on their websites. I would love to see something similar on Digia’s website. If Qt for iOS and Qt for Android would turn out like I hope they will, I would happily pay such fees to support the future development of Qt.

Cesar Ribera says:

Adrian
Your post was very informative, and I agree with your points.

I don’t develop apps for massive downloads, instead I enable qt enterprise apps (ERP or verticals) for being used in Android devices, after they are working will in Windows or MacOSX. But my users also complain about ministro and Qt downloads process too.

Could qt set as a goal, for both Andoid and iOS devices, to have an intelligent service, so that the installation process becomes transparent, without the need of redundance?

I mean, if Qt needed libraries are already installed in the device, then don’t download them again and skip the step to avoid unnecesary delays. If they’re not installed yet, then download them, IN BACKGROUND, so the final users would only see a ‘progress bar’, but won’t be bothered at all until the app is ready to be used.

I guess the concern about importance of this, should be raised to be given more priority?

In iOS, regarding the licensing issues, are these issues possible to be resolved with payments? Instead of having nothing at all, could at least a paid option be available, no matter how expensive? To have at least the chance to go into such expensive route when there is a huge need?

So we can say our final customer “you can have your ERP in iOS full-fledged, it will cost you $$$”, instead of “there is no way to have the full-fledged ERP on iOS, just a watered down web version”.

I hope to be explaining it well.
Best regards.
César

Eskil Abrahamsen Blomfeldt says:

There are technical limitations in iOS which prevents the JavaScript engine in Qt Quick 2 from working there. You should still be able to use Qt Quick 1 for now.

1) Building statically is the only means of deployment on iOS, as far as I know. For Android, there’s no reason why it should not work just as well there, but as far as I know, there’s no good solution for QML imports in static builds yet, so I think that might require some manual intervention. Providing alternative deployment methods on Android, such as bundling libraries in the apk, is planned for Qt 5.2. I know some people have been able to do this for Necessitas and for Qt 5.1 as well, but it requires a lot of manual hacking.

Qt4iOS says:

It’s not possible to use dynamic libraries in the same way as other platforms on iOS:

1) The application’s bundle is signed. Adding/removing/modifying files in the bundle invalidates the signature and will cause the launcher (SpringBoard) to reject the app.
2) The application can only load dylibs from it’s own bundle (aka. sandbox) or the system library paths. Not possible for several apps to use the same libraries.
3) Even if it was possible, the dynamic libraries are much bigger than the static ones (and will almost certainly result in the app falling outside of the maximum size for distribution over cellular connections).

It is possible to deploy apps (widgets and QML1) on the App Store already. Does Apple allow this? Yes, it’s been done already.

QtQuick (QML2) is not supported by the Digia iOS plugin, nor can V8 be used in deployed apps (due to Apple restrictions). It’s possible to use QML2 on non-JB devices right now using the Mediator Software plugin for Qt5 (demo available). Digia (or someone else) will need to find a solution before QML2 can be used in the App Store. There is at least 1 solution to that if no alternative to V8 is found.

Sunil says:

@Qt4iOs: Fortunately Digia seems to be actively working on v8′s alternative as can be found in this repo:
http://qt.gitorious.org/qtplayground/v4vm

What we are wondering is if an initial integration of v4vm is done in the 5.1 release, Companies and developers alike will start developing apps (confidently) and potentially be ready when 5.2 is out.

Thanks Qt team for the great work again!

@Eskil, @Qt4iOS Great insights! Thanks! :)

@Qt4iOS It’s great to hear that QML1 apps have been published to the AppStore. Could you post some links to those apps in the AppStore? Have there been any issues while going through QA?

Qt4iOS says:

@Sunil: AFAIK Digia is saying nothing about v4vm (not even that they’re planning on using it). Who knows what their plans are for Qt 5.1, but my guess is that it won’t be ready in the 5.1 time-frame. It’s possible to use V8 with 5.0.0 onwards on iOS (with an appropriate platform plugin) when launching apps from Xcode. The “SpringBoard” (default) iOS app launcher will kill the apps, so it can only be used in a dev environment on non-JB devices. There is another alternative which effectively runs V8 in a VM (instead of JIT) even if v4vm can’t work (or has very poor performance), but would require commercial backing to implement.

@Adrian: I’m not sure if any of the QML1 apps being developed have been submitted to the App Store yet, but several widget apps have been accepted (the ones I know of were all accepted on 1st attempt). This is using the ‘Qt4iOS’ platform plugin on Qt 4.8.x. That plugin is now available for Qt 5.0.x too.

dipesh says:

Thanks and Gratulations to all of us Qt developers and users. Great work!

Robin Lobel says:

Yeah !
Can’t wait for Qt 5.0.2 final and Qt 5.1 beta :)

Marcin says:

Is it possible to see the support status for individual modules by platform? I get a bit lost by “X is supported on Desktop and Android”, “Y is supported on Android & BlackBerry”, “Z is supported on Desktop and iOS”.

Matt Williams says:

There are several missing and superfluous brackets and spaces in this article.

Björn Piltz says:

On Mac compilation fails with
“make[3]: *** No rule to make target `/qtbase/lib/libQt5QmlDevTools.a’, needed by `/qtbase/bin/qmlmin’. Stop.”

This can be fixed by adding “CONFIG += release” to
/qtdeclarative/src/qmldevtools/qmldevtools.pro

Evan says:

Great work. I can’t wait to see full iOS and Android support! My wishlist for the next version of Qt 5 would have to be greater native implementations/addons and full Windows RT support (Metro). One thing Qt seems to lack is simple implementations for things like Windows 7 jumplists and Mac notification center, etc. I think each platform should have a small addon that provides a simpler way of integrating these into regular Qt code. Integrating this into the main Qt base would be kind of iffy because the code wouldn’t be cross-platform no matter how you wrote it. Nevertheless, Qt is still extensible enough to use the native APIs, however, an interface to all that would be much appreciated.

[...] details on the Qt 5.1 Alpha release are available from Digia’s blog. Share this:Share on Tumblr Pin [...]

JE says:

What is the estimated release date for Qt 5.1 and 5.2?
Keep up the good work, I love Qt and like to do Android app with it.

Tuukka Turunen says:

@JE: We expect to have 5.1.0 out before the summer and 5.2.0 about 6 months after.

fonzi337 says:

Congratulations! This is shaping up to be a very exciting year for Qt. :)

One question I have regarding the QtQuick Controls: From my understanding, you can override the native look of the controls to create a completely custom look in QML (say, for an embedded application). Last time I checked, even when defining a custom look, you are still required to link against the QtWidgets module. Has this changed at all? Will the changes that go into Qt 5.2 for touch applications have any bearing on this? For my application, I have no need for QtWidgets and could like to take full advantage of the scene graph performance without the need to involve QPainter.

Jens says:

The styling API will as you might suspect not be finished in time for 5.1 so the focus is currently to have a fairly complete widget set for desktop apps. For 5.2 and touch based platforms, the current plan is to use a pure Qt Quick based style as you are suggesting.

fonzi337 says:

Great! Thanks for clarifying. It will be really great to leverage the basic API provided by the QtQuick Controls for developing a very custom look and feel for embedded applications without needing to start from scratch.

Looking forward to Qt 5.1 and 5.2. :)

Richard Moore says:

@Evan you mean like this
https://codereview.qt-project.org/#change,48152 and the work for a similar QtMacExtras? :-)

Evan says:

Nice! I saw that on the Qt Gitorious but couldn’t find the source.

Lilian says:

Is it still coming in April or most probably not?

7 says:

Looks like 5.1 will be delayed, late May seems more realistic ATM.

M.S. Babaei says:

Thanksssssssssss!!
I’ve been waiting for this.

Is this release builds fine on Windows out of the box?? Or still needs patching?
Because I had trouble building git version on Windows. This guide seems to not work at all:
http://qt-project.org/wiki/building_qtbase-android_on_windows

Ray Donnelly says:

The guide is a bit out of date now. The large patch mentioned on that page has been split up into multiple patches and all but one of them has been merged now. I will leave another comment when all patches are merged and I’ve updated the wiki page.

If you want to build it in the meantime, you need to apply:
https://codereview.qt-project.org/#change,53130
then check, modify and then run the batch file I use at:
http://paste.kde.org/719246/

M.S. Babaei says:

Thank you so much Ray. I’m going to try it.

Ray Donnelly says:

You’ll also need a fixed version of mingw32-make.exe (I discovered last night that move isn’t listed as a shell builtin when it needs to be). I’ll be submitting the fix to the mingwbuilds project and also GNU.

https://mingw-and-ndk.googlecode.com/files/mingw32-make-bin-patches.tar.xz

Ray Donnelly says:

I updated the wiki for Qt/Android build on Windows:

http://qt-project.org/wiki/building_qt-android_on_windows

Roman Dosek says:

Hi,
I tried to follow your guide, but I got stuck while building apllication. I used QtCreator version 2.7 downloaded from Qt-Project web. Qt-Creator always complains about missing ma-make.exe a after googling a bit, I found, that this make was part of Necessitas bundle. After that, I build QtCreator from git but I wasn’t able to run it due to missing symbols in linked DLLs..

What are you using to build your programs? Is QtCreator 2.7 sufficient, or I need to build newest one from git?

Bob Xiang says:

no ma-make.exe, the same problem here.
i can’t deploy the program in QtCreator default setting.

Ophidian Wang says:

I got the same problem with missing ma-make.exe.
Don’t know how to fix this problem now.

Jorhe says:

Error building QtQuick:

Project ERROR: Unknown module(s) in QT: quick
make[3]: *** [sub-widgets-make_first] Error 3

Rod says:

Did you ever figure out how to get past this error? I am compiling with a brand-new kubuntu 13.04 install and encountered the same error:

Project ERROR: Unknown module(s) in QT: quick

when “make” gets to …/qmake …/qt-everywhere-opensource-src-5.1.0-alpha/qtdeclarative/src/imports/widgets/widgets.pro.

Is this a toolchain problem? Am I missing prerequisists?
Is it a config problem? A build order issue?

A solution or a even a pointer to where quick is supposed to be found?

Thanks,
Rod.

Rod says:

Installing all of the packages that include “qt5″ and “dev” seems to have gotten me past that error. Hopefully things will execute when it finishes compiling.

Hartmut says:

Great! Could you guys also clarify what will be the future of QtWebKit with the recent development w/ Blink/WebKit-sans-v8 etc. pp.?

Khlif Malek says:

Thanks and Gratulations! Great work!

Framp says:

Woah.
QtQuick Controls AND initial Android and iOS support.
Looks like we have a winner.

Congrats!

7 says:

Anyone built that already? Any difficulties? What about pre-built packages?

Tuukka Turunen says:

@7: Pre-built binary packages come with the beta release in a few weeks.

Albert says:

Great news, thanks! It’s coming with perfect timing!

Congrats to the Qt team. Thanks for all the hard work you have done.

[...] Veröffentlichung von Qt 5.0 haben die Entwickler des quelloffenen GUI-Entwicklungs-Frameworks die erste Alpha-Version für den Nachfolger Qt 5.1 veröffentlicht. Mit ihr liegen auch erste Ansätze der Unterstützung zum Entwickeln von Android- [...]

[...] Veröffentlichung von Qt 5.0 haben die Entwickler des quelloffenen GUI-Entwicklungs-Frameworks die erste Alpha-Version für den Nachfolger Qt 5.1 veröffentlicht. Mit ihr liegen auch erste Ansätze der Unterstützung zum Entwickeln von Android- [...]

This is so great news. I was just starting a project and was considering using other ios/android tools, but now I’m for sure back to using Qt, as the toolset is just awesome!

Pete says:

So will apps that use QML on iOS be releasable via the AppStore? Apps that use scripting can be rejected. For example Unity apps must AOT cross compile all VM code to build for iOS and you cannot download any modules that contain code from the internet (but you can use Webkit to display web pages if you wish). I think there may be a specific exclusion for apps that use JS via Webkit (which makes PhoneGap possible). Or have Apple changed the requirements?

raven-worx says:

apple hasn’t changed it’s policies. You’re fine by using Qt Quick 1 in your iOS app.
The problem only exists with Qt Quick 2 which uses the V8 JIT compiler.

Pete says:

Thanks – good to know. Lets hope Qt prevents/warns of this usage when running on iOS.

raven-worx says:

your app wont get accepted in the AppStore.
So you get “warned” once your app gets rejected on submission.
The Trolls already working on a solution … stay calm until Qt 5.2 with full iOS support (by end of the year) and you’ll probably see the Quick2 apps in the AppStore. ;)

Chris says:

I’m building this release on debian squeeze on x64. the configure and the make running good. on make install there are many errors. i found, that in the webkit sources are many makefiles for derived sources and targets that would never called. i run these files by hand and it seems to work

[...] 5.0刚刚发布三个月后,Digia又发布了全新版本Qt 5.1 Alpha版本(官方博客),非常值得一提的是,新版本支持Android与iOS应用开发(下载地址)。 [...]

[...] lista completa de cambios está disponible en el anuncio oficial. Descarga Qt 5.1 Alpha ahora mismo desde Softpedia. Recuerda que esta es una versión alpha [...]

Does Qt5.1 use ANGLE on Windows or Desktop OpenGL ?

7 says:

Its just source, so however you build it.

Strky says:

Great work! Congratulations :-) . I have one question. What about oracle support on android? Is this working? I need it for my diploma work.

[...] var cpro_id = "u1133754"; Qt 5.0 刚刚发布三个月后,Digia 发布了全新版本 Qt 5.1 的第一个 Alpha 测试版本,该版本最值得关注的就是首次对 [...]

RJVB says:

Both 5.0.1 and current 5.1 fail to create NSAutoreleasePools on Mac OS X, leading to objects (= memory) being leaked. I’m not aware if this requirement has been removed on 10.7 or 10.8, but it certainly exists on Mac OS X 10.6 .
I created a patch that corrects this regression from 4.8, but don’t see where to upload it now that the dev-site is down? (It’s a bit large to upload here…)

7 says:

Just post it in some public repository and provide a link for the time being, it will certainly help every one who bothers to google up the issue.

danny says:

@RJVB that’s really bad but I can’t say I’m all that surprised.

Have you added it to the Qt bug tracker? You can upload your patch there.

Morten Johan Sørvig says:

This seems to be problem on 10.6 only, and then only at app startup and shutdown before/after calling QApplication::exec().

This patch should help: https://codereview.qt-project.org/#change,53780

TheTrueDigia says:

Slaves everywhere.

danny says:

It’s good to see the desktop components getting an official release but Qt Quick is not going to be viable on the desktop for real development without a multi-column hierarchical tree view. Lists are not enough.

Are there any plans for this?

Jens says:

Multi column views will be supported, but tree view is not scheduled for the initial release. Adding a TreeView to Qt Quick is something we are going to look into for 5.2.

John says:

Qt Creator can’t parse “qtquickcontrols/src/layouts/plugins.qmltypes”, because it’s in UTF-16:

commit 9c59d474479d21ba08ac5c2ef49b77557493c3fb
Author: Jan Arve Saether
Date: Thu Feb 28 13:00:16 2013 +0100

diff –git a/src/layouts/plugins.qmltypes b/src/layouts/plugins.qmltypes
new file mode 100644
index 0000000..dd3dc69
Binary files /dev/null and b/src/layouts/plugins.qmltypes differ

Manish says:

This is a very significant leap for Qt. Having Android and iOS support is going to thrill many people around the world and I’m one of the, who was waiting eagerly to see this happen.

Great Work done by all the contributors. Thanks everyone.

All the best for the next big milestone of having stable support for Android and iOS in 5.2.

Timothy Quinn says:

I am so glad to hear this news. After digging on this topic in the last few months, I was a bit concerned on the lack of publicity on this since this work was announced when Digia took over the Qt reins from Nokia. I am very glad to hear that Digia has followed through.

I have been dreaming of the day to write apps that can cross compile to BlackBerry 10, Ubuntu Touch, iOS, Android and desktop OS’s that leverage native libraries seamlessly. This will likely be the the catalyst for me to start developing in C++/C where I can pull in my love for JavaScript and JSON.

Kudos to Digia team!

Keep up the awesome work!!

soft dastn says:

I have a problem while running jom “lpcre16 not found” by the way I had a Win7 x64 and I’m trying to build it using mingw.

Alastair says:

Hello – does anyone know the status of Laszlo’s QCommandLineParser?

Christian says:

Hello,

I’m currently testing to create an iPhone-App with this Alpha-Release.
Works quite well.

But It seems that Antialiasing is not working with QPainter (no OpenGL).
The drawn lines, circles and so on are looking quite ugly…

But same code compiled for Mac looks good.

Robert says:

WILL QT BE WORKING LIKE MARMALADE SDK WHEN YOU CREATING THE CODE ONCE AND THAN COMPILE ON DIFFERENT TARGETS LIKE IOS, ANDROID AND BLACKBERRY? WILL THE CODE USE SAME UNIVERSAL APIS FOR ALL DEVICES? PLEASE ANSWER!

Goz says:

Mobile Qt is pointless without static linking (BSD?). The commercial license is just way way too expensive for the small developers who could help drive Qt into the mainstream. I would switch ALL of my development to Qt tomorrow if I could statically link without paying the, frankly, exorbitant commercial license rates … i suspect there are many others like me too.

Thomas says:

This is a step in the right direction!

Hope to see libs bundling for Qt 5.2 so that ministro procedures are not required by end users.
I think this is a critical feature for many companies looking to use Qt technology for their solutions.

Krys says:

Hi :-)

I would be interested to try QT5 but I’m surprised that all the QT libraries are build with VS2010, but not the 64 bits version !!!!

Why such choice ? It does not seems coherent !

So, it will be wonderful if you can provide QT5-64 bits for VS2010, is it possible ?

Thanks

Reza says:

Please fix these bugs on static building of Qt sources with MSVC, these bugs are still be on all of Qt versions except 4.7:

https://bugreports.qt-project.org/browse/QTBUG-28761

https://bugreports.qt-project.org/browse/QTBUG-28989

7ymekk says:

Does Qt5.1 alpha supports WinCE? I’m trying to compile Qt5.0.2 and Qt5.1a for WinCE (-xplatform wince50standard-armv4i-msvc2008) and I’m getting plethora of errors. First there were errors in Makefile.Release of platforms/minimal, platforms/offset and platforms/windows.

Now I’m getting many errors like “CoLockObjectExternal identifier not found”, which according to: http://msdn.microsoft.com/en-us/library/windows/desktop/ms680592(v=vs.85).aspx
is for “desktop apps only”.

I really like Qt and I’m considering to use it for porting our big ecommerce application from WinCE (C# .NET 3.5 CF 2) to Android, WinCE (Qt) and iOS, but unfortunately I think I will have to make Android and iOS native applications…If someone has solution for building Qt5.1 (or Qt5.0.2) for WinCE, then please, share it with us.

Leo S says:

What does it mean that the Qt Quick Controls don’t support mobile platforms in 5.1? Does it mean that they won’t compile at all on mobile platforms, or would they just look out of place?

Commenting closed.