/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \page portingcppapp.html \title Porting C++ Applications to Qt 5 \brief Provides instructions to migrate a Qt 4 C++ application to Qt 5. This topic talks about the Qt Widgets changes in Qt 5. The following step-by-step instructions take you through the changes required to port the \l{Animated Tiles Example}{Animated Tiles} application to Qt 5: \list 1 \li Open the Animated Tiles project using Qt Creator. \li Edit \c {main.cpp} and replace the \c {#include } instance with \c {#include }. The Perl-script \c fixqt4headers.pl can be used to scan the source files of a project and perform the replacements. \li Edit the \c {animatedtiles.pro} and add \c {QT += widgets} towards the end of the file. \note \l{Qt GUI} is included by default in all Qt applications unless excluded using the \c {QT -= gui} directive in the \c{qmake} project file. \li Save the changes and run the application. \endlist Once you see the application running, check whether it behaves as expected. \image animatedtiles_snapshot.png "A snapshot of the \c animatedtiles application running on Ubuntu v12.04" It is also possible to keep the project compiling with Qt 4 and Qt 5. This requires: \list 1 \li Omitting the module name from all includes by running the \c fixqt4headers.pl script with the \c --strip-modules option. \li Adding scopes depending on the version of Qt to the \c{.pro} files: \code greaterThan(QT_MAJOR_VERSION, 4): QT += widgets \endcode \li Introducing \c #if scopes around code using modified API: \code #if QT_VERSION >= 0x050000 headerView->setSectionResizeMode(QHeaderView::ResizeToContents); #else headerView->setResizeMode(QHeaderView::ResizeToContents); #endif \endcode \endlist if you are using Qt WebKit, see \l{Porting from Qt WebKit to Qt WebEngine}{Qt WebKit to Qt WebEngine} porting instructions. \section1 Related Topics \list \li \l {C++ API Changes} \li \l {Porting QML Applications to Qt 5 Example} \li \l {Qt Examples And Tutorials} \endlist */