Files
qt-creator/doc/qtdesignstudio/src/qtquick-from-qt5-to-qt6.qdoc
Lucie Gérard a7956df3ca Use SPDX license identifiers
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>
2022-08-26 12:27:18 +00:00

120 lines
4.6 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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.qmlfile 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.
*/