Qt Design Studio(QDS)4.8.2项目文件结构详解

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)文件夹

  1. CMakeLists.txt

5)Qds.cmake

2.2 步骤二 QDS选择Cmake导出方式后文件夹结构

项目文件夹

1)App文件夹

2)cmake文件夹

3)Dependencies文件夹

4)Generated文件夹

5)项目同名文件夹

6)(项目同名+Content)文件夹

  1. CMakeLists.txt

  2. Qds.cmake

  3. qtquickcontrols2.conf

  4. 项目同名.qmlproject

  5. 项目同名.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运行时会依据操作系统主题。

相关推荐
yxlalm1 小时前
4.java秒杀项目第四课-后端商品后台接口
java·开发语言
孙启超1 小时前
【AI开发之Rust】第 1 课:认识 Rust 与开发环境 —— 装好工具链,跑通第一个程序
开发语言·人工智能·后端·ai·rust·安全架构
君顾11 小时前
家政派单小程序源码开发实战:从零搭建到上线全流程指南
java·开发语言·家政派单
我是唐青枫3 小时前
C#.NET PInvoke 深入解析:封送、内存布局与原生互操作实战
开发语言·c#·.net
程序猿编码3 小时前
纯C++轻量计算机视觉推理引擎:基于GGML的端侧CV模型部署技术全解析
开发语言·c++·计算机视觉·大模型·transformer
SEO_juper3 小时前
外贸多语言站最隐蔽的流量杀手:hreflang 错了,谷歌把德语页推给美国人(附审计脚本)
开发语言·前端·python·seo·独立站·谷歌优化
geovindu3 小时前
CSharp: Strategy Pattern
开发语言·后端·c#·.net·.netcore·策略模式·行为模式
Tairitsu_H4 小时前
[C++] C++11新增构造:列表初始化和std::initializer_list
开发语言·c++·c++11·构造
宣宣猪的小花园.4 小时前
【嵌入式】故障与降级:看门狗、保护机制和工程可靠性的底线
开发语言·人工智能·嵌入式硬件·机器学习