Qt 5 Alpha

The Qt Project is proud to announce the first Qt 5 release, tagged as Alpha. All features of Qt 5.0 are in place, and we welcome testing and feedback from advanced users of the Qt libraries. This is a source-only release – see the Installation section below to build binaries and find binaries published by the community.

All the attention is put now in stabilization, performance and documentation. We hope to celebrate the final release around the Qt Contributors Summit [qt-project.org] (June 21-23, Berlin). All your help is welcome!

Download

The alpha release can be downloaded in various formats in the release archive [releases.qt-project.org]

In a nutshell

Qt 4 was released almost seven years ago and today is still fresh and competitive in its 4.8 stable branch. Our 5th big iteration deepens four essential aspects of the Qt offering:

  • Amazing graphic capabilities and performance, especially manifested in constrained environments like mobile devices. Qt Quick 2 offers a GL-based scene graph, a particle system and a collection of shader effects. Qt Multimedia, Qt 3D and Qt Graphical Effects bring these features even further.
  • Developer productivity and flexibility, making JavaScript and QML first class citizens while keeping the C++ foundation and Qt Widget support. The new Qt JS backend powered by V8, Qt JSON DB and the addition of Qt WebKit 2 should make HTML5 developers feel at home.
  • Cross-platform portability is now simpler for OS developers thanks to the new structure of Essentials and Add-ons modules, plus the consolidation of Qt Platform Abstraction [qt-project.org]. We look forward to seeing Qt running in all kinds of environments!
  • Open development and open governance is assuring wider development and testing of Qt 5 by a growing community including developers from Nokia, the KDE project, Digia, Collabora, Accenture, KDAB and many more companies and individuals. Today we all celebrate!

Release content

The Qt 5 Alpha release includes the following modules:

  • Essentials: Qt 3D, Qt Core, Qt GUI, Qt JS Backend, Qt Location, Qt Multimedia, Qt Network, Qt Qml, Qt Quick, Qt SQL, Qt Test and Qt WebKit.
  • Add ons: Qt D-Bus, Qt Graphical Effects, Qt Image Formats, Qt OpenGL, Qt Print Support, Qt Publish and Subscribe, Qt Quick 1, Qt Script, Qt Script Tools, Qt Service Framework, Qt SVG, Qt System Info, Qt Tools, Qt Wayland, Qt WebKit Widgets, Qt Widgets, Qt XML and Qt XML Patterns.

Future releases might include more modules. See the full lists of modules available at Qt Essentials Modules and Qt Add ons Modules.

Demos and examples

Some visual and illustrative links for those of you in a rush:

  • Livecoding video effects with Qt 5 [youtube.com] – Shows Big Buck Bunny as you never saw it before with Qt Quick 2 code in action.
  • Pimp my video: shader effects and multimedia [labs.qt.nokia.com] – See the Qt 5 potential in video effects in this interesting blog post with impressive video.
  • Qt Graphical Effects in Qt Labs [labs.qt.nokia.com] – Same as above but applied to static images.
  • Raspberry Pi, Qt 5, QML, Shaders [youtube.com] – A creative video showing off GL effects and live coding on top of a $35 little sweet board.
  • Qt 3D new features [youtube.com] – Not so recent video but still useful to see what 3D designers can get from Qt.
  • Qt MediaHub [qt-project.org] – A showcase of the power and convenience of Qt Quick. Functional and open source demo for you to learn best practices when using Qt / QML.
  • Building Qt 5 for the Playbook – Instructions to test Qt 5 and run your applications in BlackBerry’s tablet.
  • QtonPi [wiki.qt-project.org] – Cutting edge project building a minimal OS and an App SDK, both optimized for Qt 5 on the Raspberry Pi board.
  • Snowshoe [snowshoe.cc] – Qt 5 based browser usable right now in the Nokia N9.
  • Quasi Engine [indt.github.com] – A Qt 5 based framework to ease 2D game development providing QML elements representing entities needed by most of games.

What’s new

Here is a summary. The full list of features can be found at Qt 5 Features.

Deeper details are available at : http://qt.gitorious.org/qt/qtbase/blobs/master/dist/changes-5.0.0

Qt Quick

  • Qt Quick is now an essential module containing the OpenGL based Scenegraph and all the usual items.
  • New support for GL based shader effects and particles.
  • QML and JavaScript support have moved to their own essential modules.
  • Qt Quick as in Qt 4.x is available in a fully compatible Qt Quick 1 add-on module.

Qt JS Backend

  • New module containing the V8 JavaScript engine behind the scenes, providing a much better performance.
  • New classes QJSEngine and QJSValue.

Qt Qml

  • New module containing the QML engine.
  • It has got lots of performance improvements and some enhancements to the language.
  • Mostly source compatible, but when writing QML items in C++ some changes are needed to adjust to the new scene graph.

Qt 3D

Qt WebKit

  • Qt WebKit essential module now is based on WebKit2. The C++ APIs have not changed.
  • Many performance improvements and better HTML5 compliance.
  • The module based on WebKit1 as in Qt 4.x is now called Qt WebKit Widget and available as add-on.

Qt Core

  • QStandardPaths class giving standard locations for files.
  • JSON parser and speed optimized binary format for JSON.
  • MIME type recognition.
  • New compile-time check of signal/slot connection syntax.
  • New Perl-compatible regular expression engine.
  • Many data structures have been rewritten and optimized for better performance.
  • C++11 support where it makes sense (but Qt continues to compile and work with C++98 compilers).

Qt Gui

  • Support for top-level surfaces through the QWindow class.
  • Built-in OpenGL support.

Qt Network

  • Support for DNS lookups.
  • QHttp and QFtp classes removed (they are available stand-alone for those that need them).

Qt Location

  • Maps and geolocation-related classes formerly part of Qt Mobility are now contained in an own essential module.

Qt Widgets

  • All former QWidget based classes in Qt Gui have been separated out into the new Qt Widgets library.
  • Ported over to the new Qt Platform Abstraction architecture.
  • Should work as in Qt 4.x.

Known issues

  • Qt WebKit compilation is disabled on Windows, as building it right now is rather complex. We’re working on having this re-enabled and fully working for the beta release.
  • Translations do not work yet; Qt applications will appear in English.

Installation

This release includes only source packages, with no official binaries. Developers are expected to build their own binaries – see Qt 5 Alpha building instructions.

You might find it useful to check unofficial binaries published by the community.

See also Building Qt 5 from Git [qt-project.org] .

Porting existing code

See Transition from Qt 4 to Qt 5 [wiki.qt-project.org] .

Documentation

API documentation for the alpha is available in the Qt 5.0 documentation [qt-project.org] .

Feedback

Developers using Qt are encouraged to join the Interest [lists.qt-project.org] mailing list to share impressions and seek community help.

Categories: