
Qt Designer 新建窗体模板与窗口部件详解
一、templates\forms(顶层窗口模板)
这些是可独立显示的顶层窗口,直接作为程序的主窗口或弹窗使用。
1. Dialog with Buttons Bottom
- 作用:底部带标准按钮的对话框
- 典型场景:确认 / 取消类弹窗(如 "是否保存"、"设置确认")
- 自带控件 :底部预布局了
OK/Cancel等标准按钮,按钮区域使用QDialogButtonBox管理,符合系统交互规范 - 特点:模态弹窗为主,适合需要用户明确操作后才能回到主界面的场景

2. Dialog with Buttons Right
- 作用:右侧带标准按钮的对话框
- 典型场景:配置类弹窗(如选项设置、参数配置),右侧按钮更符合部分工具的布局习惯
- 自带控件 :右侧预布局
OK/Cancel按钮,其他区域留给自定义内容 - 特点:和底部按钮版功能一致,仅按钮位置不同,视觉上更适合宽窗口

3. Dialog without Buttons
- 作用:无默认按钮的空白对话框
- 典型场景:复杂弹窗(如你截图里的硬件配置、TSMaster 这类多控件配置界面)
- 自带控件 :纯空白
QDialog,需要自己拖拽按钮、分组框等所有控件 - 特点:自由度最高,适合需要完全自定义布局的弹窗

4. Main Window
- 作用:应用程序主窗口模板
- 典型场景 :程序的主界面(你的
main_window.ui就是这个类型) - 自带控件:内置菜单栏、工具栏、状态栏、中心部件区域,完整支持桌面应用的窗口结构
- 特点:唯一支持菜单栏 / 工具栏 / 状态栏的模板,是构建完整应用的首选

也就是可以直接设置主菜单,主菜单下可以分为子菜单
5. Widget
- 作用:基础空白部件窗口
- 典型场景 :
- 可作为独立窗口(比
Dialog更轻量) - 作为其他布局的容器部件(嵌入到主窗口或其他弹窗中)
- 可作为独立窗口(比
- 自带控件 :纯空白
QWidget,无任何预定义结构 - 特点:最基础的容器,灵活性最强,但需要自己实现所有窗口功能

二、窗口部件(可嵌入的子控件 / 容器)
这些是不能独立作为顶层窗口 的部件,需要嵌入到 Main Window/Dialog/Widget 中使用,用于实现复杂布局。
1. QDockWidget
- 作用:可停靠 / 浮动的面板
- 典型场景:IDE 的侧边栏、工具栏、调试面板(如 VS Code 的侧边栏、Qt Creator 的属性面板)
- 特点:可拖动到主窗口边缘停靠,也可浮动为独立窗口,支持折叠 / 展开
- 使用 :必须嵌入到
QMainWindow中

2. QFrame
- 作用:带边框的基础容器
- 典型场景:作为分组容器、分隔线、装饰性边框
- 特点:可设置不同边框样式(凸起、凹陷、纯线条),轻量且无内置布局
- 使用:作为其他控件的父容器,用于视觉分组

3. QGroupBox
- 作用:带标题的分组框
- 典型场景:配置界面的功能分组(如你截图里的「CAN 控制器」「仲裁」「数据」分组)
- 特点:自带标题栏,可设置是否可勾选启用 / 禁用内部控件,视觉上清晰划分功能区域
- 使用:包裹一组相关控件,是上位机配置界面最常用的容器

4. QScrollArea
- 作用:带滚动条的容器
- 典型场景:内容过多超出窗口显示范围时(如长列表、多配置项)
- 特点:自动显示水平 / 垂直滚动条,保证小窗口也能浏览完整内容
- 使用 :内部包裹一个子部件(如
QWidget),子部件尺寸超出时自动滚动

5. QMdiArea
- 作用:多文档界面(MDI)容器
- 典型场景:多窗口编辑器(如 Photoshop、CAD 的多文档标签 / 窗口)
- 特点:支持在主窗口内打开多个子窗口,可平铺 / 层叠 / 最小化
- 使用:仅适用于需要多文档管理的复杂应用

6. QTabWidget
- 作用:标签页容器
- 典型场景:多页配置界面(如浏览器标签、设置面板的「常规 / 高级 / 网络」分页)
- 特点:通过标签切换不同页面,节省空间,结构清晰
- 使用 :每个标签对应一个
QWidget页面,适合分类展示大量内容 
7. QToolBox
- 作用:折叠式面板容器
- 典型场景:侧边栏折叠菜单(如 QQ 面板、PS 的工具面板)
- 特点:可展开 / 折叠的分组,同一时间只显示一个分组内容
- 使用:适合层级较少、需要垂直空间的侧边导航

8. QStackedWidget
- 作用:堆叠式页面容器
- 典型场景:向导流程、步骤式配置(如安装向导、设置向导)
- 特点:多个页面堆叠在一起,同一时间只显示一个页面,通过代码切换
- 使用:配合按钮 / 菜单实现页面切换,隐藏的页面不占用显示空间

9. QWizard
- 作用:向导对话框模板
- 典型场景:分步引导流程(如软件安装向导、设备配置向导)
- 特点:内置「上一步 / 下一步 / 完成」按钮,自动管理页面跳转逻辑
- 使用 :配合
QWizardPage实现多步骤引导 
10. QWizardPage
- 作用:向导的单个页面
- 典型场景 :作为
QWizard的子页面,承载每一步的内容 - 特点:可设置页面标题、子标题,支持页面间数据传递
- 使用 :必须嵌入到
QWizard中,不能独立使用

🎯 选型建议(结合你的上位机场景)
表格
| 需求场景 | 推荐模板 |
|---|---|
| 程序主界面(带菜单栏 / 工具栏) | Main Window |
| 硬件配置 / 参数设置弹窗 | Dialog without Buttons |
| 确认 / 提示类简单弹窗 | Dialog with Buttons Bottom |
| 多页配置 / 分类设置 | QTabWidget + QGroupBox |
| 长列表 / 超多配置项 | QScrollArea + QGroupBox |
| 侧边导航 / 折叠面板 | QToolBox 或 QDockWidget |