QtDesignStudio/QMLProjectFileFormat

From Qt Wiki
< QtDesignStudio
Revision as of 11:19, 12 November 2024 by Thomas Hartmann (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

With Qt Design Studio 4.5 the project structure did change.

With Qt Design Studio 4.5 we changed the project structue. The goal was to have only a single import path (./) at the root of the project. This is better in line with the QML compiler and QML tooling. (https://doc.qt.io/qt-6/qtqml-qtquick-compiler-tech.html)


The default import path is now "./" the root folder of the project, since this better matches with the requirements of the QML compiler and tooling around QML. Before there were usually two import "imports" and "assets_imports". Also relative URIs between modules are now the same in QDS and in the compiled C++ application.

The default project module is now in ./ProjectName instead of imports/ProjectName.

Assets are now imported to "Generated" instaed of "assets_imports". QtQuick3D assets are now in Generated/QtQuick3D and Generated.Effects instead of e.g. assets_imports/QtQuick3DAssets.

Because of the different import paths the (relative) URIs of resouces like meshes are not the same when running the project in Qt Design Studio and the resulting C++ application. The solution is to either avoid referencing assets (files like .mesh files) between modules or moving to the new project strucuture.

Adjusting the project strucuture for legacy projects:

Move the project module from "./import/ProjectName" to "./ProjectName". The same applies to any other module in imports. The URI is not affected by this.

Move all modules from "./assets_imports" to "./Generated". Unfortly this also requires adjusting the import URIs throughout the project.

Project structure since Qt Design Studio 4.7:

ProjectName -                                     ### Folder containing the project
           ProjectName                           ### Default QML module with the same name as the project
           ContentProjectName                    ### Folder with the main QML files. Contains the project name, so it beomes unique, since in the C++ project this is a QML module
           Generated                             ### Folder containing all generated QML modules from 3D import, content libarry and design systems