1 . 前言
QDS:Qt Design Studio是Qt前端开发工具。
QTC:Qt Creator 是Qt前后端开发工具。
使用QDS开发单独前端效果会更好一些,也是目前主流前后端分离开发的方式。那么就有必要熟悉QTC与QDS合并后的文件结构。
截止2026年8月,QDS版本为4.8.2。注意此版本生成的文件结构与4.5之前文件结构不一样。
2 . 新版本QDS(4.5之后)
2.1 步骤一 QDS创建项目后文件夹结构
刚创建项目,其文件夹如下:
项目文件夹
1)Generated文件夹
2)项目同名文件夹
3)(项目同名+Content)文件夹
- CMakeLists.txt
5)Qds.cmake
2.2 步骤二 QDS选择Cmake导出方式后文件夹结构
项目文件夹
1)App文件夹
2)cmake文件夹
3)Dependencies文件夹
4)Generated文件夹
5)项目同名文件夹
6)(项目同名+Content)文件夹
-
CMakeLists.txt
-
Qds.cmake
-
qtquickcontrols2.conf
-
项目同名.qmlproject
-
项目同名.qrc
2.3 步骤三 QTC打开QDS项目
使用QTC打开QDS项目,选择CmakeLists文件即可。打开后会新增.qtcreator文件。如下图所示:

2.4 结构详解
2.4.1 APP文件夹 (C++ 后端源码)
存放C++代码的目录。通常包含 main.cpp(程序启动入口,负责加载QML文件)、window.h/cpp 等。开发者在这里编写业务逻辑、C++模型(Model)、自定义控件插件等,并将其暴露给QML调用。
2.4.2 cmake文件夹
存放CMake构建所需的辅助脚本或模块文件(例如,用于查找特定第三方库的.cmake文件)。在标准小型项目中可能为空,但为复杂构建预留了扩展位置。
2.4.3 Dependencies文件夹(项目依赖)
存放项目依赖的外部组件或子模块。例如,Qt Safe Renderer(安全渲染器)或从Qt Marketplace下载的付费组件通常会安装在这里。它有助于隔离第三方代码。
2.4.4 Generated 文件夹(自动生成产物)
这是CMake构建过程中自动生成的临时文件夹(通常不在版本控制中,如 .gitignore)。包含moc编译文件、qmltyperegistrations(QML类型注册)和*.qrc编译资源文件。请勿手动修改此文件夹的内容。
2.4.5 项目同名文件夹(QML界面源码)
存放核心的QML文件,通常包含 Main.qml(主窗口)和各个 Page.ui.qml(可视化UI表单)。这是设计师拖拽控件、设计布局的地方。
2.4.6 (项目同名+Content)文件夹(静态资源库)
存放所有非QML的静态资源,如 .png、.jpg 图片、字体文件 .ttf 或翻译文件 .ts。你在QDS中通过 Assets 面板导入的图片,默认都会被复制到此文件夹下,并通过QDS自动注册到构建系统中。
2.4.7 CMakeLists.txt(项目总入口)
这是Qt Creator唯一需要打开的文件。它是整个项目的构建脚本,定义了C++ 源码、依赖库、Qt版本以及如何将UI资源打包进最终的可执行程序。它内部会主动包含并调用Qds.cmake。
2.4.8 Qds.cmake(专属胶水脚本)
这是QDS自动生成的CMake辅助文件。它的核心任务是自动解析同目录下的项目同名.qmlproject和项目同名+Content文件夹,将所有QML文件和图片资源自动添加到CMake的资源编译(QRC)列表中,省去开发者手动编写资源路径的麻烦。
2.4.9 qtquickcontrols2.conf(全局样式配置)
Qt Quick Controls 2的配置文件。用于定义全局主题(如 Material、Universal 风格)、主色、字体等。QDS的Properties面板中对Application窗口设置的样式,最终会写入此文件。
2.4.10 项目同名.qmlproject(QDS项目标识)
这是QDS的项目识别文件。设计师通过双击此文件在QDS中打开项目。它定义了QML模块的导入路径和文件过滤器,确保QDS的Assets、Navigator和2D/3D视图正常工作。注意:在"合并"工作流中,此文件必须保留,但QTC不直接使用它,而是由Qds.cmake读取其配置。
3 . 旧版本(QDS4.5之前)
MyProject/ # 项目根目录
├── MyProject.qmlproject # QDS项目配置文件
├── assets/ # 存放图片、字体等静态资源文件
├── imports/ # 存放自定义的QML模块和组件
├── MyProject/ # 默认的项目QML模块 (例如)
├── qml/ # 存放主要的QML界面文件 (.ui.qml)
├── Screen01.ui.qml
├── qmldir # QML模块描述文件
├── ... (其他配置文件)
4 . 问题
4.1 QDS 4.8.2有使用教程吗?
4.2 QDS 4.8.2 导入图片的正确方式是什么 ?
将图片文件直接拖拽到QDS的2D、Navigator(导航器)或 Code(代码)视图里。图片会自动出现在Assets面板中。
4.3 为什么在项目添加一个Images文件夹,将图片放进去,QDS就能识别到?
文件夹结构变化的确QDS会检测到,并在QDS运行时能正常显示,但是这种添加方式非Assets资源方式添加,与QTC合并后会找不到相关图片。
4.4 QDS导出项目是否选Enable CMake Gengrator
选 ,前后端协作时是必要的,这个选项建立了一个双向链接:
当你在QDS中修改UI、添加或删除资源(如图片、QML文件)时,QDS会自动更新这个 CMakeLists.txt 文件。
这样,当开发者在Qt Creator中打开这个 CMakeLists.txt 文件时,就能获得一个与你在QDS中完全同步的项目,所有文件引用和结构都是最新的。
4.5 QTC使用QDS项目是直接打开此QDS项目进行开发?
4.6 QTC打开QDS项目是选CMakeList.txt还是XX.qmlproject
选CMakeList.txt
4.7 合并后主题是否由 qtquickcontrols2.conf 决定?
是的,但是如果是Basic主题,QDS和QTC显示会不一样,QDS是设计模式不依据操作系统主题,而QTC运行时会依据操作系统主题。