Step 1: Port to 5.15
Update your current apps to latest 5.15. In my case this means I have to update all my apps and projects from Qt 5.15.7 to 5.15.13. Another good reason to update to 5.15.13: there are many bugs fixed. This means, I can remove many workarounds. Will do it before copying to Qt 6. My favorit fixed bugs:
- QTBUG-97503 (Android: keyboard covers the input field)
- QTBUG-96117 (Android soft keyboard no longer pans the screen)
- QTBUG-98974 (Android 11: Scoped Storage) – partly fixed yet
- QTBUG-107923 (Wrong height of window on Android)
- QTBUG-107604 (Incorrect fullscreen dimensions on some Android devices)
Next step after downloading: Fix Qt deprecations warnings from Qt 5.15
Have noticed that there were many things changed in QtCreator, per ex. the handling of adding / managing devices for Android has changed fundamental. So I’m describing the complete installation process for beginners.
You need more time before Step 2 (Move your apps to 6.5) ?
No problem – Qt helps you to prepare your 5.15 apps for new Qt 6 features 🙂
- New QML language fatures from Qt 6 are also available for 5.15: Required Properties, Inline components, Nullish Coalescing
- Qt Quick additions: TreeView, CalendarView, Qt Quick MultiEffect
Before downloading and installing it’s always a good idea to take a look at New Features in Qt 5.15.
Step 2: Port to 6.5
If this would be a normal update from 5.14 to 5.15 or so, you probably do the changes in a branch at your Github (or elsewhere) repo. The differences between Qt 5 and Qt 6 are really huge, so I recommand to clone your repo and start a new one for Qt 6.5+.
If you want to get an overview what’s new in Qt 6.5 (coming from Qt 5), here are all the New Features:
- New Features in 6.0
- New Features in 6.1
- New Features in 6.2
- New Features in 6.3
- New Features in 6.4
- New Features in 6.5
As first you must install Qt 6.5+. I recommand a new installation and not trying to update your installation from 5 to 6.
As soon as Qt 6 and QtCreator are installed, try some examples on your target platforms, per ex. Android and iOS. Try deploying apps to Android and iOS devices. It also makes sense for debugging to test the desktop target – in my case macOS, because some times it’s faster to test on desktop instead of deploying to a device.
If installation is OK, try to make your apps run on Qt 6.5. No new features, no change of build system. Simply make your apps build and run. This will be enough work to start with 😉
But wait: to get existing apps to be compiled, built and run on devices, there are some important changes we must have done immediately after downloading:
- Fix deprecations warnings from Qt 6, if they’re blocking
- QML Calendar was qt.labs in Qt 5 – now is part of QtQuickControls in Qt 6
- I’m using JP Nurmi’s Statusbar – must be adjusted for Qt 6 ?
- Switch from Qt Graphical Effects to Multi Effect in QML
- Switch from QNetworkConfigurationManager Class to QNetworkInformation Class
Step 3: Switch from qmake to cmake
This will be the hardest step for me, because I don’t have any experience with cmake. My first idea was, at first still to use qmake and implement new features from Qt 6. Then later – perhaps a year or so – switch to cmake. Following all the discussions about cmake last months I learned, that many new features only are supported by cmake. So from the beginning I’ll switch all my projects from qmake to cmake before adding new features.
Step 4: Qt 6 in action
Then I’ll do all the refactorings, restructuring and also add new features to my apps.
Will explain what I’m doing and why. Curious what will happen 😉
You must be logged in to post a comment.