Qt 5.2 is Here!

Documentation

  • Qt 5.2 documentation is available here.

  • Known issues

  • Have a look at the known Qt 5.2 issues.

  • Change Files

  • Please find the Qt 5.2 change files here.

  • New features

  • Detailed technical list of new features in Qt 5.2

    The Amazing Cross-Platform Framework

    Qt 5.2 is the latest version of Qt, the leading cross-platform application and UI software framework. With Qt 5.2 we are proudly introducing the production-ready versions of Qt ports on Android and iOS completing our Qt Everywhere message: Qt runs on all major desktop, embedded and mobile platforms!

    Qt 5.2 lets you develop an application that runs natively on all of the following platforms:

    • Desktop: Windows, Mac OS X, Linux/X11, Solaris
    • Embedded: Embedded Linux (DirectFB, EGLFS, KMS, and Wayland), Windows Embedded (Compact and Standard), Embedded Android, Green Hills Software INTEGRITY, QNX, Wind River VxWorks
    • Mobile: Android, iOS, BlackBerry, Sailfish, WinRT*, Tizen*
      *Work in progress, technology previews

    See details of platform support from here


    Qt 5.2 Highlights

    Qt on Android

    The Qt for Android port is now fully supported and ready for production use. Qt applications can be run on devices with Android v2.3.3 (API level 10) or higher and deployed easily to Google Play.

    The tools have been nicely integrated with Qt Creator 3.0 for a seamless workflow and Qt applications can be developed, built, packaged and deployed all directly from within Qt Creator.

    Qt Webkit is not supported on Android and we are working on providing a cross-platform API to integrate web content into mobile apps. If you you would like to incorporate web content into your Qt application, you need to use a native web component. To make interacting with native contents easier, we are providing the Qt Android Extras module with a JNI convenience API.

    Learn more about Qt for Android support.

    Qt on iOS

    Qt is now also fully supported on iOS. With the new Qt specific JavaScript engine, both Qt Widget and Qt Quick-based applications run well on iOS and are compatible with App Store policies.

    Qt Creator 3.0 features experimental support for iOS development. For the most parts, you can use Qt Creator for your development workflow, but for signing and deployment, you will still need to use XCode.

    Qt WebKit is also not supported under Qt for iOS and because of App Store policies, it will not be supported either. For now, you need to use the native WebKit in iOS. This can be done by using the native Objective-C libraries, which is possible with the iOS compiler, clang. The same approach can be used to add other platform-specific functionality like in-app purchasing into a Qt application.

    Learn more about Qt for iOS support.


    Tutorial video for getting started with Qt and Mobile Development


    Lots of Improvements for Desktop and for Core Parts of Qt

    Qt 5.2 also introduces lots of improvements to our desktop platforms and core parts of Qt. More than 1500 bugs have been fixed since the release of Qt 5.1.1:

    • Qt Windows Extras module
    • Qt Mac Extras module
    • Qt Quick Controls improved for the desktop, and it was made easier to integrate Qt Quick into traditional Qt Widget UI
    • A lot of improvements for existing Qt Widgets and a completely new one, QKeySequenceEdit class
    • Many fixes to support Mac OS X Mavericks
    • Improved timezone and locale support through QTimezone and QCollator classes.

    New Qt-Specific JavaScript Engine

    The Qt QML module is seeing one major change: The V8 JavaScript engine has been replaced with Qt’s own JavaScript engine. This new engine is made from the start to support QML and Qt’s data types so that it works faster with Qt code avoiding all unnecessary type casts. The new engine can also be used in an interpreter mode avoiding Just-In-Time (JIT) compilation. This is extremely useful for running Qt Quick 2 on platforms where JIT is not available or where it is not possible because of application store policies (iOS).

    Qt 5.2 introduces the first version of the new JavaScript engine. It is already introducing a performance improvement over Qt 5.1 when running QML code, but for extensive JavaScript calculation it is still lacking a bit behind. However, already now the size of our QML stack has decreased by around 5 MB and with one less shared library that needs to get deployed. There are no dependencies on V8 anymore and the stack is a lot more maintainable for us to develop further. This is an on-going project and Qt 5.3 will introduce an even more improved JS engine for Qt.

    Improvements to Qt Quick and Qt Quick Controls

    The rendering engine of Qt Quick, Scene Graph, has been updated to a new one that significantly reduces both CPU and GPU load for many use cases. In addition to new the renderer, the new Animator QML type offers animations that fully run on the rendering thread and won’t block or stutter even if your main thread has some long running calculations to perform.

    The Qt Quick Controls have a couple of new Controls and features to offer:

    • Switches and Busy Indicators added
    • Table view supports movable columns and extended selections
    • Deployment has been greatly simplified

    Accessibility Support

    Accessibility is now fully supported on all desktop platforms and a basic support for Android is also available. The accessibility APIs are now public so you can implement accessibility for custom widgets.

    Qt Creator 3.0

    Qt 5.2 ships together with Qt Creator 3.0 and in addition to improved Android support and initial iOS support, it includes:

    • Extensions for multiple screens
    • Cleanup in the Qt Creator plugin APIs
    • Initial support for lldb

    Editing a mobile app layout in Qt Quick Designer


    Improved Qt Webkit

    Qt 5.2 features a fresh and improved version of Qt Webkit, based on a snapshot of webkit.org from July 2013. Some new features include:

    • CSS blending
    • GeoLocation
    • Web Notifications
    • Context menus for HTML5 video
    • Canvas Path object
    • Page Visibility API
    • Threaded garbage collection.

    Qt Positioning

    The Positioning API provides location information via QML and C++ APIs. The positioning data can originate from a variety of possible sources like GPS satellite, cell data, Wi-Fi or a text file.

    The backend functionality (where the data comes from) is plugin-based and can be extended through the APIs. At this point, Qt Positioning has ready-made working backends for all platforms using the NMEA data (text files) and for Linux there is a GeoClue-based backend available.

    Introductory Support for Qt Bluetooth and Qt NFC

    The new Qt Bluetooth module allows you to retrieve information about local Bluetooth devices, scan and retrieve information about devices in range, push files to devices and connect to them using RFCOMM. Qt Bluetooth module is currently supported only for Linux (on BlueZ 4.x) and BlackBerry.

    The Qt NFC module provides APIs for using the short-range Near Field Communication with other devices and NFC tags. At this point, with Qt 5.2 this module is only supported for BlackBerry.

    The support for these modules will be extended to other platforms in future Qt releases.


    “Quick Forecast” and "FlyingBus" Applications for mobile

    Quick Forecast is a nice-looking weather application that has been written with Qt 5.2 using Qt Quick Controls. It shows an example of a web-connected cross-platform Qt application that is deployed to Google Play and App Store using the same code base. Learn more from the Quick Forecast blog post.

    Get it on Google Play Download on the AppStore

    Take to the drivers seat of the Flying Bus! The objective of the game is to get your bus to traverse obstacles by inflating and popping balloons to gain and loose altitude. Who needs roads anyway? This game is written entirely in QML and JavaScript.

    Get it on Google Play Download on the AppStore