Qt 5 Beta
August 30th, 2012 – The Qt Project has released Qt 5.0 Beta and is calling platform developers, OS integrators and advanced Qt application developers to test and send us feedback. Qt 5 Beta is based upon the work from a core of approx. 250 developers.
Binaries are available for installation on the reference platforms: Linux (X11 and Wayland), MS Windows and Mac OS X. Unofficial Qt 5 packages are also available for other platforms like QNX, QtonPi and the main Linux distributions (Ubuntu, Debian, Fedora).
The goal is to have a final release before year end. Current focus areas include testing of the revamped Qt Quick and Qt WebKit, Qt Widget application API compatibility between Qt 4 and Qt 5, and the stability and good performance on MS Windows and Mac OS X.
The Qt project aims to make developers’ life easier by enabling faster creation of great Qt apps and UIs on one or multiple targets. With Qt 5 we aim to make Qt better for addressing the latest UI paradigm shifts that i.e. touch screens and tablets require.
Amazing graphic capabilities and performance — Special focus on low cost hardware environments like mobile and embedded devices. Qt now requires OpenGL ES, offering impressive graphics features and performance for animated 2D and 3D objects and interfaces.
Cross-platform portability — Create new targets /OS development more easily due to the new Essentials and Add-ons module structure, plus consolidation of Qt Platform Abstraction (QPA).
Open development and open governance — Faster development and broader testing of Qt 5 is assured by the active participation of a growing community including developers from Nokia, the KDE project, Intel, KDAB, Digia and many more companies and individuals.
Keep as much compatibility with Qt 4 as possible — Porting from Qt 4 to Qt 5 is very easy. QWidget and related classes are fully supported for the desktop platforms.
Since Qt 4 there have been numerous changes to Qt. Here’s a good overview of what’s new in Qt 5.
Qt Quick 2
- Qt Quick is now an Essential module [qt-project.org] containing the OpenGL based Scenegraph and all the usual items
- New support for OpenGL based shader effects and particles
- Qt Quick as in Qt 4.x is available in a fully compatible Qt Quick 1 add-on module
- Performance improvements and some enhancements to the language
- Source compatible — note though that when writing QML items in C++ some changes are needed to adjust to the new scene graph
- New classes QJSEngine and QJSValue
- The WebKit module in the beta provides the same API as in Qt 4.x, but comes with performance improvements and new web-facing features
- In the release following the beta we plan to rename the WebKit module into Qt WebKit Widgets, providing the same C++ API as in Qt 4
- In addition we will introduce a new QML component that is based on the WebKit2 technology
- 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)
- Support for top-level surfaces through the QWindow class
- Built-in OpenGL support
- Support for DNS lookups
- QHttp and QFtp classes removed (they are available stand-alone)
- 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
- Works as in Qt 4.x
- This is now an add-on module to Qt 5
- Maps and geolocation-related classes, formerly part of Qt Mobility, an add-on to Qt 5
Livecoding video effects with Qt 5 [youtube.com]
Shows Big Buck Bunny as you never saw it before. Qt effects created with QML.
See the Known Issues page [qt-project.org]
The Qt 5 Beta release includes the following modules:
- Essentials [qt-project.org] : Qt Core, Qt GUI, Qt Multimedia, Qt Network, Qt Qml, Qt Quick, Qt SQL, Qt Test and Qt WebKit.
- Add-ons [qt-project.org] : Qt 3D, Qt D-Bus, Qt JS Backend, Qt Graphical Effects, Qt Image Formats, Qt Location, 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.
New since Qt 5 alpha
Since Alpha the focus has been bug fixing and stabilization:
- Continued work on reference platform stability. Qt Creator compiles and runs well on Qt 5
- Qt WebKit is now available on MS Windows
- Cleanups of a few new APIs
- Qt now expects source code to be encoded in UTF-8
- New QUrl implementation merged
- Unified data structure behind QVector, QString and QByteArray
- New metaobject revision, better API for QmetaObject with access to QObject’s meta data
- Upgrade to Unicode 6.1
- New plugin system for Qt 5 apps.
- Qt Print Support module refactoring and cleanups
- C++11 support enabled by default on compilers supporting it
- Exceptions disabled on Qt modules that don’t require them for space/size savings
- QHash hash key randomization for security
- QIcon moved back to QtGui
- Modularizing of documentation started
- QNX support improvements
- Preliminary ANGLE support on MS Windows offering better OpenGL support
- Qt Qml and Qt Quick have seen a huge amount of bug fixes, memory usage improvements and optimizations.
Most other modules got minor improvements and bug fixes.
Note: Qt Base is the only module that has accepted significant changes that didn’t make it to the Alpha release
This release includes both source packages and binaries for Mac OS X, Windows and Ubuntu Linux. Developers who want to build their own binaries – see the README in the source package.
You might find it useful to check unofficial binaries [qt-project.org] published by the community.
See also Building Qt 5 from Git [qt-project.org] .
The Qt project bug tracker [bugreports.qt-project.org] is the preferred channel for reporting issues.
Check also the Qt 5 Beta announcement blog post [labs.qt.nokia.com] at Qt Labs
Developers using Qt are encouraged to join the Interest [lists.qt-project.org] mailing list to share impressions and seek community help.
Documentation & Guides
- API documentation for the beta is available in the Qt 5.0 documentation [qt-project.org].
- Wiki for building documentation [qt-project.org]
Developer Guides & Tutorials
Introduction to Application Development with Qt Quick
- Qt Quick Painting using Canvas Item [qt-project.org]
- Particles and Graphics Effects in Qt Quick 2 [qt-project.org]
- Developing an arcade game with Qt3D [qt-project.org]
- Qt OpenGL Tutorial [qt-project.org]
- Qt Quick Application Developer Guide for Desktop [qt-project.org]
Porting existing code
- Transition from Qt 4 to Qt 5 [qt-project.org]