Tuukka Turunen

Qt 5.5 Alpha Available

Published Tuesday March 17th, 2015
79 Comments on Qt 5.5 Alpha Available
Posted in Qt, Releases

Qt 5.5 is branched from dev and we now have the Alpha packages available. Main focus of Qt 5.5 is to polish and improve existing functionality, but as always there are also some new exciting features to talk about. With Qt 5.5, Canvas 3D is fully supported and a technology preview of long awaited Qt 3D is included. Qt 5.5 also introduces mapping support with a Qt Location technology preview. Qt 5.5 Alpha is the first step towards Qt 5.5 final release planned to be available in May.

Focus on Quality

With many of the previous Qt 5.x releases we introduced new supported platforms and many new modules. With Qt 5.5 we are mainly focusing on polishing and improving existing functionality. Many of the new features are small additions or enabling existing APIs on new platforms. Qt 5 is already a solid platform and we want to make it even better with Qt 5.5.

In addition to Qt functionality, we have been improving our QA and CI systems to be able to better support different configurations. With Qt 5.5, we will have new capabilities in CI and releasing systems enabling us to continue making Qt 5.5.x releases also after Qt 5.6 is released.

Qt 3D and Qt Canvas 3D

One of the most desired new items in Qt 5.5 is a technology preview of Qt 3D 2.0. There has been a lot of effort put into Qt 3D especially by our partner KDAB. The new Qt 3D 2.0 is now shaping up for prime time. Qt has been used throughout the years in making many well known applications leveraging 3D, but Qt 3D makes it easier than before to include and use 3D content in your Qt applications. Qt 3D provides C++ and QML APIs for easy inclusion of 3D graphics into your Qt applications and supports OpenGL 2, 3, 4 and OpenGL ES 2 and ES 3. For more details what Qt 3D 2.0 brings, you can check Qt 3D documentation and the series of blogs by KDAB.

In addition to introducing Qt 3D, Qt 5.5 also brings full support for the new Qt Canvas 3D module. With the lightweight Qt Canvas 3D, it is possible to make WebGL like 3D drawing calls from Qt Quick / JavaScript providing an easy way to use WebGL assets directly on top of Qt Quick. For many 3D needs this is a convenient approach, which allows leveraging of 3D applications developed for HTML5/WebGL.

Qt Location

Another long-awaited module that is now added to Qt 5 is a Technology Preview of Qt Location, adding mapping, geocoding, reverse geocoding, routing and place features to Qt. This makes it is easy to provide mapping functionality in your application. Qt Location supports different mapping providers with backends available for Open Street Map, Mapbox and Here Maps.

Qt Multimedia

Qt Multimedia has received GStreamer 1.0 support and some new features. One of the most interesting new features is a new video filtering framework to integrate frameworks like OpenCV or compute APIs, such as OpenCL or CUDA, with VideoOutput elements. Other additions to Qt Multimedia include, for example, a new API to control viewfinder settings and improved camera support on iOS.

Qt Quick and Qt Quick Controls

Qt 5.5 introduces a new TreeView control and provides the former Enterprise Controls (CircularGauge, DelayButton, Dial, Gauge, PieMenu, StatusIndicator, ToggleButton, Tumbler and TumblerColumn) available also for the open-source users. The former Enterprise Controls are now available via a new QtQuick.Extras import.

Support for threaded rendering using QQuickRenderControl is added. On Windows, Qt Quick rendering now defaults to the threaded Qt Quick render loop when using desktop OpenGL. OS X trackpad functionality is improved to support native pinch gestures via PinchArea, as well as supporting smart zoom.

Qt Quick Engine now supports JavaScript typed arrays and you can now conveniently expose custom C++ value types into the JavaScript environment of QML and QJSEngine. In addition, the Qt Quick Engine has received various performance improvements and optimizations.

Updated Qt WebEngine and Qt WebView

Qt WebEngine is updated to contain a new Chromium version 40 and support for new APIs. Qt WebEngine now provides APIs for managing downloading of files, support for Geolocation, controlling cache and cookies, as well as settings. In addition, many previously experimental Qt Quick APIs are now public and fully supported. Qt WebChannel has been integrated to Chromium IPC making it easier and more secure to create hybrid applications. Qt WebEngine now also provides a new User script API, which together with support for Qt WebChannel provides a powerful combination for making hybrid applications.

Qt WebView now has a native implementation also for Mac OS X (in addition to Android and iOS that were already supported). The Qt WebView has also received new APIs for status notifications, setting HTML content and running JavaScript.

Other New Functionality

Qt Bluetooth now fully supports Bluetooth Low Energy API with also Android and iOS support added in Qt 5.5. We have also introduced classic Bluetooth support on iOS.

Qt Network has received many improvements, for example a new SSL back-end for iOS and OS X based on Secure Transport, support for TLS PSK ciphersuites, and support for elliptic curve certificates. Qt NFC has received neard -based backend for Linux, and QPA has received many improvements.

For more details, please check the full list of New Features in Qt 5.5.

Supported Configurations

In order to better support Qt WebEngine and other functionality benefitting from new compilers, we have updated our CI and releasing systems with new configurations for Qt 5.5. To be able to support the new configurations, we are dropping some older ones (e.g. Ubuntu 11.10 and 12.04 dropped from CI, OS X 10.7 only supported as a secondary platform). Qt 5.5 will provide support for Windows 10 (when available) and RedHat Enterprise Linux 6.6.

For more details on new CI configurations, please check the wiki.

Deprecated Modules

Qt WebKit, Qt Declarative (Qt Quick 1) and Qt Script modules are being deprecated in Qt 5.5. Qt WebEngine is the direct replacement of Qt WebKit, Qt Quick 2 replaces Qt Quick 1 and Qt Script is replaced by the Qt QML functionality. All these modules are still included in the Qt 5.5 release, but considered for removal in the future releases of Qt.

Get Qt 5.5 Alpha

Qt 5.5 Alpha source packages are available via Qt Account and download.qt.io. Binaries will be provided in conjunction with Qt 5.5 Beta release, and binary snapshots will be available before the Beta.

Please help us in making Qt 5.5 awesome. Try out the Qt 5.5 Alpha and report issues to bugreports.qt.io.

Do you like this? Share it
Print this pageEmail this to someoneShare on LinkedInShare on Google+Share on FacebookTweet about this on Twitter

Posted in Qt, Releases

79 comments

Philippe says:

Nice… But why deprecating Qt Script? This is a very good module to execute general purpose scripts within an application, with easy mapping to custom C++ functions. There is no replacement in Qt 5.5 AFAIK (?).

jstaniek says:

@Marco This thread could be helpful:
https://www.mail-archive.com/development@qt-project.org/msg18866.html

Marco Piccolino says:

Hello @jstaniek! Did you intend to reply to me re offline map tiles? the link you provided is about something else.

Chris Daehn says:

ACK! This neat module with few dependencies was THE ONLY chance to get scripting WiTHOUT GUI!!!!

So now everybody MUST HAVE A GUI and MUST implement the (for servers absolutely useless and with dangerous dependencies assigned) QML!!!

This way every professional developer for backend apps gets a big punch in his face!

Thank you Digia!!!!

ciao,
Chris
(who doesn’t have any QML and won’t ever!)

Kai Koehne Kai Koehne says:

Qt5Qml does not have a Qt5Gui dependency (that’s Qt5Quick), nor do you have to use QML (the language).

You can use both JS and QML scripting just fine for command line applications.

Ivan Čukić says:

I guess that there was always the naming problem with QML vs QtQuick, so people expect QML to be the same thing.

It is really nice that Qt5 has them fully separated. I guess it would not hurt to reiterate the QML != QtQuick UI in most release notes so that people become more aware of the situation.

jh says:

what does it mean ‘Qt Script is replaced by QML’ ? we need a javascript interpreter in our application without having QML.
havin no JS would be absolute NO GO!

davidB says:

Same here. I use the JavaScript in my C++ to do lots of alebraic expression evaluations. Will there still be something like QScripts functionality for evalating scripts

Kai Koehne Kai Koehne says:

You should check whether http://doc.qt.io/qt-5/qjsengine.html fits your needs.

Chris Daehn says:

As already mentioned in february, the new JSEngine only covers (in best case) up to 90% of QtScript, but lacks very important functionality and tools like the often used (and for big scripting irreplacebale) graphical script debugger.

Further no dev copes about a migration path / support for migration – we users just have to rewrite our apps – which just brakes the investment of years. But hey: Who copes about stable APIs? The customers only, devs still state that QtScript wasn’t updated (because they themselves didn’t accept and merge pull requests).

Great work guys!

Regards,
Chris

Marco Piccolino says:

Really welcoming the QtLocation overhaul. Is there any out-of-the-box support for offline maps? (cached tiles)

Maurice Kalinowski says:

Hi Marco,

not in the initial version no. For Qt 5.5 the idea is to get the functionality working again, which was available in the Qt 4 times, do adoptions to QtQuick2, added platforms etc.

Only from there we can see how to move on. But offline maps are clearly an item which is raised by many parties.

Marco Piccolino says:

Thanks for your reply! really looking forward to improvements on that front

Enih says:

Can PPAPI plug-ins (e.g. pepper Flash) run in Qt WebEngine?

Zeno Albisser says:

Support for PPAPI plugins (specifically Flash) is currently being worked on. It will not be part of QtWebEngine in Qt 5.5 yet.

Robin Lobel says:

Can we still make applications that run on OSX 10.7 without tweaking stuff ?

Will Stokes says:

I’m wondering the same thing. My impression is that in theory 5.5 will still run just fine on 10.7, while 5.6 may end up breaking 10.7 support. Please confirm. I definately need to keep supporting 10.7 and would hate to back port changes in 5.5 to 5.4.

@Robin and Will: OS X 10.7 is no longer in CI for Qt 5.5, so it is prone to break and therefore can not be considered as fully supported. If you need to address OS X 10.7 it is recommended to use Qt 5.4 in your application.

VioletGiraffe says:

Why is that? What’s changed? Did the change the target SDK version?

Maxime B says:

Can’t wait for 5.5 for improved QWebEngine Module! , is there any binary available or I have to compile it? Thanks!

@Maxime B: Binaries will be provided with the Beta release (and a bit before as binary snapshots). So you either need to build yourself or wait a bit.

Maxime B says:

Great, will wait a little bit then!
QtWebEngine is going to right way. Would be nice if we could integrate external plugins like Chromium allow you to do (chrome:://plugins)
I’d like to run flash and install a few others plugins that are not bundled with Chromium by default.

Ashok Jaiswal says:

Hello Tuukka

Cant wait for binary release, while I tried compiling the source and was successful however I am new to Qt and could not make the compiled binaries work with our app.

Is there nightly build link of binaries I could download and try?

Thanks

@Ashok: Binary snapshots are hopefully available soon, but not yet.

Stephen Chu says:

Does QtWebEngine support rendering HTML/SVG to vector paint devices like PDF now? If not, then removing QtWebKit will be very irresponsible.

Zeno Albisser says:

Printing is currently not supported yet in QtWebEngine.

Stephen Chu says:

Any plan or schedule on supporting it?

Greg Hindley says:

Does this version allow you to do a static build with -opengl dynamic included?

Laszlo Agocs Laszlo Agocs says:

Yes, the initial issues with -static -opengl dynamic in 5.4.0 are corrected in 5.4.1 and 5.5.

However, keep in mind that generating completely static builds is not possible: ANGLE will not be built statically in such builds, it will still remain a shared library.

Hernan Martinez says:

Laszlo, I thought that fix didn’t make in time to 5.4.1. If it did I’m very happy . I thought it was 5.4.2 / 5.5 only. Correct me if I’m wrong!

Laszlo Agocs Laszlo Agocs says:

True! My bad. It is indeed only fixed in 5.4.2 (and 5.5), not 5.4.1. (QTBUG-43993)

Arthur Turrini says:

Qt Core (base) , Qt Widgets, Qt SQL & Qt Network.

Please give more focus on those modules.

You known that not everything produced with Qt are eye-candy-mobile-applications.

We have a lot of desktop/server and gui/console applications running everywhere and you guys seems to care only about QML/Mobile.
We love performance, we love the ease of use of Qt, and we’d love if you bring updates to these modules in Qt 5.5. QML simply because of its minimum requirements, do not meet our needs for large data grids or dynamic operations with little memory usage and cpu.

We also need more attention in SQL modules and network, lagged before others.

Other than that, we love Qt.

@Arthur Turrini: All the modules you listed are important and we are continuously working to maintain and improve these. It is simply not true that everything we care about is Qt Quick / QML. Practically all Qt applications are done either with C++ or C++ and Qt Quick, so certainly C++ is of great importance for us.

davidB says:

Sorry but your releases do not reflect this. Nothing new in QtWidgets for a looong time.

Chris Daehn says:

Ack. Just to a grep on the last release notes – all main topics just turn around QML, basic core functionality needed by professional grade back end applications was last cared about in the 4.x releases.

Currently widgets, scripting, networking and i/o handling is – just see the current entries in the bugtracker – set to low prio.

Fancy guis instead of professional apps, that’s what Digia seems to focus on.

Sidenote: For the 4.x docs Nokia even cared about the docs and provided some graphics for overviews – since 5.0 every graphic (besides one picture for signals) was kicked out.

Great improvement for our money! Thanks!

ciao,
Chris
(commercial customer)

@Chris & davidB: Of course the amount of new features in the widely used and mature modules is lower than in modules that are introduced recently. Qt Quick is very beneficial in some areas, so we do want to continue improving it. But it does not mean we stop developing the core parts of Qt.

DavidB says:

You know QML is really something. I like it a lot for small apps, but for really large apps it fails, and I think this is what is troublesome for a lot of enterprise or profesional desktop app developers. Why would anyone pay your full price for a framework such as Qt Widgets that is very old without any updates. I mean its like your trying to sell 2009 cars as 2015 models with 2015 prices.

Perhaps my sentiment doesn’t fit your target user, but then if you look at job boards for Qt you will find that your ideal user doesn’t really exist.

I really appreciate Digia trying to be such good stewards of Qt, but I really think you guys are way off with trying to generate revenue by chasing tiny apps at tiny prices for Android and the IPhone.

Clemens says:

Full ACK!

Trino says:

I couldn’t agree more Chris.
It’s really a pitty, the direction Qt is going…

Scorp1us says:

What about headless Qt? There are no rpm/deb/CLI installers for Linux EC2 installs?

I heard there would be work done on this for the next Qt?

Per says:

Very disappointing to see QtScript being deprecated. I’ve been using it extensively in various projects, and been counting on it existing throughout Qt5’s lifetime. Or at least until a viable replacement existed, which QJSEngine definitely is not – it does not even have a way to do debugging yet!

I didn’t think Qt would do this kind of massive API breakage of applications.

I guess once it is removed our only option, short of rewriting everything to use some other (java)script engine, is to go back to Qt4… Very sad.

@Per et al, As mentioned in the blog post, Qt Qml is the module that provides the replacement functionality for Qt Script. Qt Qml does contain a JS engine that is better compliant with ECMA standards than the engine you can find in Qt Script.

Qt Script hasn’t been developed further for many years, and doesn’t receive bug fixes. It still relies on a version of JavascriptCore that is quite a few years old and updating it to a newer version is a huge task.

Qt Qml doesn’t have any Gui dependency even though QML as a technology is often used to create user interfaces (using the Qt Quick module). The module can be used purely as a JavaScript engine using the QJS* set of classes and the new functionality to bind value types into the engine that has been added to Qt 5.5

Qt Qml is also actively developed, and the JS part of it receives regular updates. We e.g. added TypedArray support to Qt Qml with Qt 5.5, something that Qt Script never supported.

And lastly: Qt Script won’t go away overnight. We’d like to encourage everybody to have a look at the JS functionality in Qt Qml and see if their use cases are covered by the API there. Please give us feedback in case you have a use case you can’t get working with the new APIs, and we’ll do our best to try and cover it.

René says:

At the moment, I’m missing two features in QJSEngine:

1. QScriptEngine::abortEvaluation()
2. QScriptEngineDebugger class

Unfortunately, these two features are essential, especially the second one.

Hernan Martinez says:

No QtWebkit? Does that mean that Qt Assistant is going to use QWebEngine? :) I would love to see that

Tom says:

Is there any chance of supporting VS2015?

Peter Bocan says:

Hello there, I’d rather see you fix all those legacy bugs and clean the issues since Qt 4 than constantly adding new features. Just polish your product, stop releasing news and fix what you can fix. That’s not “cute” way to leave old stuff undone/not fixed.

@Peter Bocan: Quality is a key focus area for Qt 5.5. We are putting a lot of effort into improving and polishing the existing functionality. But we do not want to altogether stop developing new – there is a real need for the new features coming with Qt 5.5.

Peter Bocan says:

Okay. Now I am curious when people at Digia will fix all issues since Qt 4.x (I suppose not so soon).

Trino says:

It’s simple: Adding features generates money. Fixing bugs cost money…
So, nothing is going to change. Digia will continue to add new features instead of fixing bugs and polishing Qt (widgets).
What a pitty.

stereomatching says:

Agree with the other’s users, not every one want to focus on simple mobile apps, please polish the good old Qt Core (base) , Qt Widgets, Qt SQL & Qt Network modules. We need them to develop complicated, robust, high performance applications

Clemens says:

Full ACK!

Alex says:

You are totally right.

Trino says:

Nothing new here. Digia does NOT care about Qt widgets.

Daniel H says:

Full Ack

James Chen says:

Hi, Tuukka,
Great news for the release of qt5.5.0 alpha, the features in 5.5.0 is awesome.
But it didn’t contain a binary package. And I build it from source without success for Windows.

Therefore, may I ask when the 5.5.0 beta version will be released?

Thanks. Great work. :)

@James Chen: Beta is planned to be released in April and final in May. As we want to make sure the release is good, the other way to answer this is “when it is ready”.

Ionut Dediu says:

Great news for all the new features. However it does seem like Qt is in a forever alpha state, features not really working 100%. 1 example is getting access to the camera frames in c++, either rgb or yuv format. Right now (or at least in 5.4) this could not be done in Android. Sure the QML examples with showing the camera viewfinder on screen worked and were shiny but this is pretty much useless if one can not get access to the frame data.

Also looking into the APIs for specifying the camera viefinder settings: it looks like one has to use a corba like API where you don’t just do something simple like camera->getViewfinder()->setResolution(320,240) but you specify an interface id to somehow comunicate and pack simple settings data into a variant etc really ugly. I guess Steve Jobs was right, making things easy and simple is the most complicated thing.

I am really excited about Qt3D though and I hope it’s in a usable state.

stereomatching says:

I always use openCV2(waiting for 3) to take the frame from the camera, process it(sharpen, blurring, rotation, scale, face recognition etc) by openCV2 then feed it into the qimage(take the reference, not copy), this kind of task is quite easy to perform by openCV2. If adding extra dependency on openCV2 is not a problem for you, maybe you can give it a try.

Paweł Stankoski says:

Great news!

Especially support for gstreamer 1.0 sounds great! Is that possible to make it available for other platforms like Windows and Android? Managing different backends for each platform makes Qt Multimedia module much less usable for applications that must support many platforms. In such case most people avoid QtMultimedia and use gstreamer or vlc nowadays.

toran says:

Deprecation of QtScript is a great disappointment. I am using it extensively in many projects. However, Digia’s decision regarding QtScript future is also an argument for me to invest in the replacement of QtScript with non Qt-based technology. I would have to replace QtScript if I want to stay with new Qt releases, but I’ll search for the replacement elsewhere first.

Ben says:

Hi There,
would it be possible to overlay a Qt3D object on top of let’s say a recitingle ?
So something like :
Rectangle {

MyQt3DObj{

}

}
Thank you very much for the help!

Makkonen Sami Makkonen Sami says:

Please take a look at Scene3D example http://doc-snapshots.qt.io/qt5-5.5/qt3drender-scene3d-example.html

Clemens says:

Hi, do you have any plans on further improving the QSql* classes, QTableView, etc. from QtWidgets?
Many professional business apps use the QSql and QWidgets module extensively.
Would be great to see at least some milestones in those areas. I know my opinion does not count much here, but I guess I am not the only one, waiting to end the feature-stop on QtWidgets and QtSql.
I am happy with the work done for QML and also in QtNetwork.
But the QSQLITE adapter, QSql* models and the QTableView are definitely not feature-complete 😉
There is work to do. Please put it up on your roadmap for the next release :)

Nejat says:

Totally agree with you. Hope to see new QtWidgets features and improvements in each release.

Benoit says:

Another great release, the development speed and quality is amazing. I am especially happy about QtLocation (and looking forward to additional map improvements like offline maps, tilt, …) and better native styles for Quick Controls.

The future of Qt looks bright. Congratulation to all contributors!

Marco Piccolino says:

Benoit, we are also eagerly awaiting these improvements. Let’s get in touch to see if we can push things forward. You can find me on twitter and elsewhere: @marco_piccolino

Tim says:

Great release – especially nice about the extra open source controls.

I’m a bit sad the BLE API doesn’t expose the full functionality that native APIs do though – e.g. there doesn’t seem to be a way to obtain the actual data from BLE advertisments (e.g. manufacturer specific data).

Tim says:

And there’s still no (sane) way to make custom Qt Quick controls that have text!

HGH says:

But but Qt WebEngine won’t build with MinGW or will it?

@HGH: Why not use Visual Studio to compile Qt WebEngine?

Trino says:

Because VC is a retarded compiler owned by a monopolist that calls GPL a cancer. Once Qt can not be compiled anymore with MinGW(64) we will stop using Qt!

Marius Cirsta says:

I think this is due to Chromium being included.
There are plans of compiling Chromium with clang on Windows so this is probably how things are going to move forward.
Of course I’m not too fond of MS myself but I did choose to use their compiler on Widows, it’s not like using Windows only APIs that would taint your stuff.

BCS says:

What about Chrome Dev Tools. Is it possible to use QWebEngine and Debuge the javascript code in the new version?

QWebEngineSettings::DeveloperExtrasEnabled

Are they public now ?

Zeno Albisser says:

The remote inspector can be used by either defining the env variable QTWEBENGINE_REMOTE_DEBUGGING, or by supplying the –remote-debugging-port command line argument. You can then point a browser at the specified port and inspect your web content.

Steven says:

Cant wait for this release, the new features are exactly what I want.

Will the QML Flat Light style be available in the community edition with Qt5.5?

J-P Nurmi says:

Hi Steven, the QML Flat style is indeed available in the community edition. :)

Vladislav says:

What about Windows 10 UAP support?
Microsoft released their Windows 10 SDK preview a few days ago, so will Qt support new platform for universal applications?

Maurice Kalinowski says:

@Vladislav,

we haven’t had time yet to check on the lately released Windows 10 SDK, only on the latest Visual Studio 2015 CTP update. Unfortunately there are quite many internal compiler errors in the current version, which I try to workaround right now to have at least something working.

Generally the idea is to have support for Windows 10 including its own SDK via the Qt for WinRT version. In the meanwhile you can continue to use VS2013 and Qt for WinRT to successfully run applications on Windows 10 as well. You won’t get the latest and greatest features, but for verification purposes of an existing application it is something to start with.

Commenting closed.

Get started today with Qt Download now