Moderniser les modules QML
Les modules QML sont devenus plus puissants et plus faciles à utiliser dans Qt 6. Les sections suivantes décrivent comment moderniser les modules QML qui utilisent déjà qt_add_qml_module.
Voir aussi Porter les modules QML vers CMake pour savoir comment porter un module QML vers l'API CMake qt_add_qml_module.
Utiliser qt_standard_project_setup
qt_standard_project_setup met en place les politiques de Qt CMake nécessaires aux modules QML modernes, entre autres choses. Pour moderniser votre module QML et suivre les meilleures pratiques, appelez qt_standard_project_setup dans le fichier de premier niveau du projet CMakeLists.txt avant tout appel à qt_add_qml_module:
qt_standard_project_setup(REQUIRES 6.8)
Utiliser le nouveau préfixe du chemin de ressources standard
Le chemin de ressource standard pour les modules QML est passé de :/ à :/qt/qml avec QTP0001. N'utilisez pas de préfixes de ressources personnalisés et n'étendez pas les chemins d'importation dans le moteur. Supprimez tous les arguments RESOURCE_PREFIX de tous les appels à qt_add_qml_module, ainsi que tous les appels à QQmlEngine::addImportPath ou similaires. Modifiez tous les chemins qrc dans votre code C++ et QML pour utiliser le nouveau préfixe de chemin de ressource :
// C++ usages like:
QUrl someUrl("qrc:/MyQmlModule/MyResource1.png");
// need to be changed to
QUrl someUrl("qrc:/qt/qml/MyQmlModule/MyResource1.png");
// QML usages like:
":/MyQmlModule/MyResource1.png"
// need to be changed to
":/qt/qml/MyQmlModule/MyResource1.png"Voir aussi Utiliser le système de ressources Qt avec QML.
Utiliser loadFromModule pour charger vos fichiers QML
Avec le chemin d'importation par défaut, vous pouvez utiliser les méthodes loadFromModule, comme QQmlApplicationEngine::loadFromModule, QQuickView::loadFromModule, ou QQmlComponent::loadFromModule, par exemple.
Utilisez loadFromModule pour charger votre fichier QML, par exemple :
engine.load(QUrl(QStringLiteral("qrc:/MyQmlModule/Main.qml")));
// becomes
engine.loadFromModule("MyQmlModule", "Main");Remplacez OUTPUT_DIRECTORY et IMPORT_PATH par DEPENDENCIES TARGET
Évitez de définir un IMPORT_PATH dans le module qt_add_qml_module. Utilisez plutôt DEPENDENCIES TARGET pour déclarer des dépendances vers d'autres modules QML qui ne peuvent pas être trouvés dans le chemin d'importation actuel.
L'utilisation de DEPENDENCIES TARGET élimine également le besoin de la variable CMake QT_QML_OUTPUT_DIRECTORY et de l'argument OUTPUT_DIRECTORY de qt_add_qml_module, donc supprimez leurs définitions et leurs utilisations.
Par exemple :
### in the CMakeLists.txt file defining the dependent QML module:
# don't set QT_QML_OUTPUT_DIRECTORY and remove lines like these:
set(QT_QML_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/qml)
qt_add_qml_module(MyThirdPartyQmlLibraryDependency
URI MyThirdPartyQmlLibraryDependency
....
# custom output paths are obsolete due to DEPENDENCIES TARGET below, so remove:
OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/qml
}
### in the CMakeLists.txt file defining the QML module that uses the dependency:
qt_add_qml_module(MyQmlLibrary
URI MyQmlModule
...
# replace import paths like these:
IMPORT_PATH ${CMAKE_CURRENT_BINARY_DIR}/thirdparty/qml
# with:
DEPENDENCIES TARGET MyThirdPartyQmlLibraryDependency
}Note : Vous devrez peut-être appeler add_subdirectory() avant d'appeler qt_add_qml_module dans votre CMakeLists.txt pour que DEPENDENCIES TARGET trouve la cible.
Pour plus d'informations sur la façon de déclarer des dépendances de modules, voir Déclarer des dépendances de modules.
Voir aussi Changements apportés à Qt Qml et Porter les modules QML dans CMake.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.