Nokia Qt Labs Releases Qt 5.0 Alpha

Nokia Qt Labs announced the alpha release of Qt 5 C++ application development framework, which focuses on the delivery of Qt Essential modules for Qt 5.

This new version of Qt goal is to bring the focus to a model, although native Qt using C++ would still be used to implement modular backend functionality for Qt Quick. The developers explains that this module is working nicely on Qt for embedded system where UIs are full screen, but more work is needed on the desktop, and it will only be fully implemented in Qt 5.1 or 5.2.

Base all Qt ports on Qt Platform Abstraction layer (QPA) to make it easier to port Qt to other windowing systems and devices.

Re-architect Qt graphics stack using a a Scenegraph on top of OpenGL to increase performance versus Qt 4, using Qt Quick and OpenGL (ES) 2.0

Modular repository structure for increased flexibility and to meet the merge of desktop and mobile which allows to add /remove user specific modules as needed and a full integration of the Qt mobility APIs

Separate all QWidget related functionality into its own library

Qt 5.0 alpha release also brings new functionalities in different part of Qt:

Qt Core

QStandardPaths class which provides the standard locations for things such as media and documents on your platform.

JSON parser and speed optimized binary format for JSON.

Mimetype recognition support, both on extension and file content.

Compile time checked signal/slot connection syntax as well as a new Perl compatible regular expression engine.

Many data structures have been rewritten and optimized for better performance.

C++11 support, although Qt can still be compiled and work with a C++98 compliant compiler.

Qt Gui

QtWidgets library for all QWidget based classes.

QtGui support for top level surfaces through the QWindow class

Built-in OpenGL support.

Qt Network

DNS lookups support

Removal of QHttp and QFtp classes (which are available standalone for those that need them).

Many smaller improvements.

Qt Widgets: Ported over to the new QPA architecture

Qt Quick

Qt Quick 1 module is available (same as the Qt Quick from Qt 4.x), but won’t be developed any further.

Added new Qt Quick and Qt Qml modules.

Separation of the graphical parts of Qt Quick from the QML and JS language into separate modules.

JS classes (QJSEngine and QJSValue) are now using Google’s V8 engine for much better JavaScript performance

Performance improvement to the QML engine

The Qt Quick module contains the OpenGL based Scenegraph and all the basic items that are known from Qt Quick in Qt 4.x.

Added support for GL based shader effects, particles and many other things.

You can watch the short demo below using Qt5 with Qt Quick 2.0 and demonstrating distance field OpenGL shaders to render smoothly low-resolution pixmaps with excellent performance both in a computer and a mobile phone (Nokia N950).

If you already have written applications running on Qt 4.x, the new Qt 5 API may break your code and you should follow the porting instructions to make sure your code will build and run properly.

However, Qt developers insist that there is no rush to port apps to Qt 5 immediately, as Qt 4.8 is still there, although ultimately they believe that Qt 5 will offer enough benefits to consider moving.

[…] Qt 5.0 comes as a full SDK package including Qt 5 framework, Qt Creator 2.6.1, examples and full documentation. Qt 5.0 is available in source code and binary format for Linux (64 and 32 bit), Mac OS X (10.7 and 10.8), and Windows. You can read more about the main changes and new features compared to Qt 4.8, on my previous blog post about Qt 5 Alpha. […]