ConfigTools 工业级自动化配置工具介绍¶
🔗 GitLab 仓库链接:Utilities/ConfigTools
ConfigTools 是一款基于 Qt/C++ (C++17) 编写的高性能工业级图形化配置应用。项目专门为模块化自动化系统(例如西门子 TIA Portal)的物理 and 逻辑部署而设计,内置高逼真 42U 机柜物理仿真、智能硬件装配冲突检测、撤销/重做操作记录栈以及一键式工程报表生成引擎。
🌟 核心特性¶
- 高逼真 42U 机柜物理仿真
- 建立在精确的 1U = 50px 网格坐标系统之上,渲染包含标尺和物理导轨的虚拟机柜。
- 支持拖拽交互与磁吸附对齐(Magnetic Snapping),且内置实时物理碰撞检测,当放置位置无效时提供物理回弹动画反馈。
- 严谨的 MVC 数据与图形架构
- 采用高度解耦的 “机柜 -> 设备 -> 插槽 -> 模块” 层级化树形数据结构。
- 支持插槽数量在运行时进行动态增删与自适应重排版。
- 基于 QUndoStack 的撤销重做命令系统
- 完整实现了命令模式(Command Pattern),所有增删、拖拽移动、属性更改以及插槽调整等操作均被命令栈捕获,实现无缝的
Undo/Redo。 - 一键生成 “四合一” 自动化 Excel 报表
- 深度集成开源库
QXlsx,能够将配置结果自动转换为极具表现力的四页签专业 Excel 报表:- Topology (机柜拓扑图):物理排列直观图形化展现,带智能单元格合并。
- BOM (物料清单):列出每种设备的具体物理插槽位置、数量与计算单价。
- I/O Mapping (I/O地址分配):自动推导和分配每个信号通道的逻辑 I/O 地址。
- Cost Analysis (成本核算):统计单柜及整系统的采购资金,支持多税率核算。
- 项目生命周期与打包保护
- 支持保存校验、未保存退出提示,并提供快速键位支持(
Ctrl+S/Ctrl+Shift+S)。 - 可一键打包并导出
.ctproj工程压缩包(内置 ZIP 序列化),便于异地协作与工程归档。 - 精致的工业风主题与多语言
- 采用定制开发的 Catppuccin Mocha 现代化暗黑工业风 QSS 样式表,降低长时间配置作业的眼部疲劳。
- 原生支持中英文双语实时运行时无缝切换。
📁 项目结构¶
ConfigTools/ (项目根目录)
├── config/ # 默认硬件库目录及系统模板
├── docs/ # 11阶段的系统开发路线图与详细设计文档
├── i18n/ # 多语言翻译源文件 (.ts / .qm)
├── src/ # 核心业务逻辑与 UI 界面代码
│ ├── commands/ # 基于 QUndoCommand 的各类交互动作命令
│ ├── core/ # 树状数据模型、配置管理与 ZIP 序列化逻辑
│ ├── export/ # QXlsx 自动化报表导出与 .ctproj 读写逻辑
│ ├── graphics/ # 机柜、卡件与连线图形场景渲染器 (QGraphicsScene)
│ └── widgets/ # 属性编辑器、设备树及主界面窗口组件
├── templates/ # 报表导出所需的 Excel 预置格式样板
├── tests/ # 基于 QtTest 的单元测试套件
└── third_party/ # 内置依赖库 (QXlsx, miniz 压缩库等)
REF¶
[1]. about/index.md
[2]. README.md