Porting C++ Applications 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 Animated Tiles application to Qt 5:
- Open the Animated Tiles project using Qt Creator.
- Edit
main.cpp
and replace the#include <QtGui>
instance with#include <QtWidgets>
. The Perl-scriptfixqt4headers.pl
can be used to scan the source files of a project and perform the replacements. - Edit the
animatedtiles.pro
and addQT += widgets
towards the end of the file.Note: Qt GUI is included by default in all Qt applications unless excluded using the
QT -= gui
directive in theqmake
project file. - Save the changes and run the application.
Once you see the application running, check whether it behaves as expected.
It is also possible to keep the project compiling with Qt 4 and Qt 5. This requires:
- Omitting the module name from all includes by running the
fixqt4headers.pl
script with the--strip-modules
option. - Adding scopes depending on the version of Qt to the
.pro
files:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- Introducing
#if
scopes around code using modified API:#if QT_VERSION >= 0x050000 headerView->setSectionResizeMode(QHeaderView::ResizeToContents); #else headerView->setResizeMode(QHeaderView::ResizeToContents); #endif
if you are using Qt WebKit, see Qt WebKit to Qt WebEngine porting instructions.