forked from qt-creator/qt-creator
Replace the current license disclaimer in files by a SPDX-License-Identifier. Task-number: QTBUG-67283 Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
120 lines
4.6 KiB
Plaintext
120 lines
4.6 KiB
Plaintext
// Copyright (C) 2021 The Qt Company Ltd.
|
||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||
|
||
/*!
|
||
\page studio-porting-projects.html
|
||
\previouspage creator-vcs-git.html
|
||
\nextpage quick-converting-ui-projects.html
|
||
|
||
\title Converting Qt 5 Projects into Qt 6 Projects
|
||
|
||
\QDS supports creating UIs with Qt 6 in addition to Qt 5. However, to
|
||
make a project that uses Qt 5 use Qt 6, you have to be aware of a few
|
||
differences and issues that are discussed in this topic.
|
||
|
||
\section1 Font Loader
|
||
|
||
Projects that were \l{Creating Projects}{created} with \QDS 2.1 use
|
||
\c FontLoader in a way that is not supported in Qt 6. Specifically, the
|
||
\c name property is read-only in Qt 6. Therefore, you must modify the
|
||
\c Constants.qml file to have fonts loaded correctly. You can either
|
||
remove the \c FontLoader or switch to using the \c source property
|
||
instead of the \c name property.
|
||
|
||
To remove the \c FontLoader, delete the following line from the
|
||
\c Constants.qml file:
|
||
|
||
\code
|
||
readonly property FontLoader mySystemFont: FontLoader { name: "Arial" }
|
||
\endcode
|
||
|
||
Then, remove the following lines that contain references to mySystemFont:
|
||
|
||
\code
|
||
readonly property font font: Qt.font({
|
||
family: mySystemFont.name,
|
||
pixelSize: Qt.application.font.pixelSize
|
||
})
|
||
|
||
readonly property font largeFont: Qt.font({
|
||
family: mySystemFont.name,
|
||
pixelSize: Qt.application.font.pixelSize * 1.6
|
||
})
|
||
\endcode
|
||
|
||
Alternatively, you can keep the \c FontLoader and use the \c source property
|
||
instead of the \c name property. If you are unsure about how to do this, you
|
||
can replace the \c Constants.qml file with a new one that you create by
|
||
using \QDS 2.2.
|
||
|
||
\section1 Qt Quick Studio Components
|
||
|
||
\l{Summary of Shapes}{Qt Quick Studio Components} are available in Qt 6,
|
||
except for the \l {Iso Icon} component. It specifies an icon from an
|
||
ISO 7000 icon library as a \l [QtQuickExtras] {Picture} component, which
|
||
is not supported in Qt 6. Therefore, Iso Icon is also not supported in Qt 6.
|
||
|
||
\section1 Qt Quick Studio Effects
|
||
|
||
\l{2D Effects} are only partially supported. The following 2D effects are
|
||
not available in Qt 6:
|
||
|
||
\list
|
||
\li Blend
|
||
\li Inner Shadow
|
||
\li Blur effects except:
|
||
\list
|
||
\li DirectionalBlur
|
||
\li FastBlur
|
||
\li GaussianBlur
|
||
\li MaskedBlur
|
||
\li RecursiveBlur
|
||
\li RadialBlur
|
||
\li ZoomBlur
|
||
\endlist
|
||
\endlist
|
||
|
||
Substitutes are provided for the obsolete effects to keep Qt 5 based
|
||
applications working, but the effects will not be rendered as expected.
|
||
|
||
\section1 Qt Quick 3D
|
||
|
||
In Qt 6, you cannot use the import \c {import QtQuick3D 1.15}, which
|
||
imports a Qt 5 based Qt Quick 3D module. Qt 6 does not require a version
|
||
for imports, and therefore it is not used by default. To turn a Qt 5 based
|
||
project into a Qt 6 based project, you have to adjust the imports in all
|
||
\c .qml files that use Qt Quick 3D by removing the version numbers.
|
||
|
||
For more information about changes in Qt Quick 3D, see the
|
||
\l{https://doc-snapshots.qt.io/qt6-dev/qtquick3d-changes-qt6.html}
|
||
{changes file}.
|
||
|
||
\section1 QML
|
||
|
||
For general information about changes in QML between Qt 5 and Qt 6, see:
|
||
|
||
\list
|
||
\li \l{https://doc.qt.io/qt-6/obsoleteqmltypes.html}{Obsolete types}
|
||
\li \l{https://doc.qt.io/qt-6/quick-changes-qt6.html}{Changes in Qt Quick}
|
||
\endlist
|
||
|
||
The most notable change is that Qt 6 does not require a version for
|
||
imports anymore.
|
||
|
||
\section1 \QDS
|
||
|
||
Projects that support only Qt 6 are marked with \c {qt6Project: true} in
|
||
the \c .qmlproject file. This line is added if you choose \uicontrol {Qt 6}
|
||
in the wizard when creating the project. If the project file does not
|
||
contain this line, the project will use Qt 5 and a Qt 5 kit by default.
|
||
You can change this in the project \uicontrol {Run Settings}, where you
|
||
can select \uicontrol {Qt 6} instead.
|
||
|
||
Projects that use Qt 6 specific features will not work with Qt 5. This
|
||
means that projects that are supposed to work with both Qt 5 and Qt 6
|
||
require versions for their imports.
|
||
|
||
Therefore, if you want to use Qt Quick 3D, using the same project with Qt 5
|
||
and Qt 6 is not possible.
|
||
*/
|