Porting Guide

Qt 5 is a result of the conscious effort to make this C++ framework more efficient and easy to use. This release replaces quite a few legacy APIs with more meaningful ones, such as the newer version of Qt Quick.

We try to maintain binary and source compatibility for all the public APIs in each release, but some changes were inevitable in an effort to make Qt a better framework. In this topic, we try to summarize those changes and provide guidance to handle them.

The following list summarizes the changes in Qt 5:

  • Modularized codebase - This means only Qt essentials and the add-on modules you're interested in are needed to develop an application. To know what makes the essentials and add-on modules, refer to the modules page.
  • Platform-specific code - Symbian and Meego-specific code is removed from the codebase.
  • Platform defines - All platform-specific code must be wrapped using the preprocessor macro, Q_OS_* instead of Q_WS_*.
  • Widgets - These are now part of a separate module, Qt Widgets. They were part of Qt GUI earlier.
  • Qt Quick - The older Qt Quick version (1.0) is now part of a separate Qt Declarative add-on module for compatibility purposes. We recommend using the new Qt Quick (2.0) from now on to avoid binary breaks in the future.
  • Qt3Support - This module is removed in Qt 5, so you must move away from this module before porting your codebase to Qt 5.
  • Qt WebKit - This module has been replaced with Qt WebEngine.
  • Multimedia - In Qt 5, multimedia support is provided by the Qt Multimedia module. Phonon framework is no longer part of Qt, but it continues to be maintained by the Phonon developers and has support for Qt 5. See http://phonon.kde.org.