171 lines
3.7 KiB
Markdown
171 lines
3.7 KiB
Markdown
|
|
# 配置文件编辑器 - 实现完成
|
||
|
|
|
||
|
|
## 📋 功能完成清单
|
||
|
|
|
||
|
|
✅ **配置编辑窗口实现** (`src/ui/config_editor.py`)
|
||
|
|
- 树形 JSON 编辑器
|
||
|
|
- 智能类型感知编辑器 (bool, int, float, str)
|
||
|
|
- JSON 格式验证
|
||
|
|
- 自动备份机制
|
||
|
|
- 修改跟踪
|
||
|
|
|
||
|
|
✅ **主窗口集成** (`src/ui/main_window.py`)
|
||
|
|
- 菜单项集成: "工具" → "编辑配置文件"
|
||
|
|
- 快捷键: Ctrl+,
|
||
|
|
- 文件选择对话框
|
||
|
|
- 配置改变信号处理
|
||
|
|
|
||
|
|
✅ **配置路径管理** (`src/utils/config.py`)
|
||
|
|
- 导出 `config_dir` 变量
|
||
|
|
- 便捷的配置文件访问
|
||
|
|
|
||
|
|
✅ **文档与示例**
|
||
|
|
- `CONFIG_EDITOR_GUIDE.md` - 完整使用指南
|
||
|
|
- `edit_config.py` - 独立编辑器脚本
|
||
|
|
|
||
|
|
## 🎯 核心功能
|
||
|
|
|
||
|
|
### 1. 树形编辑
|
||
|
|
```
|
||
|
|
📁 application
|
||
|
|
├─ name: "采集箱出厂测试工具"
|
||
|
|
├─ version: "1.0.0"
|
||
|
|
└─ language: "zh_CN"
|
||
|
|
📁 serial
|
||
|
|
├─ default_baudrate: 115200
|
||
|
|
├─ default_timeout: 1.0
|
||
|
|
└─ auto_detect_ports: true
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. 智能编辑器
|
||
|
|
- `bool` 值 → QCheckBox
|
||
|
|
- `int` 值 → QSpinBox (范围: -2147483648 ~ 2147483647)
|
||
|
|
- `float` 值 → QDoubleSpinBox (精度: 6位小数)
|
||
|
|
- `str` 值 → QLineEdit
|
||
|
|
|
||
|
|
### 3. 数据保护
|
||
|
|
- 自动备份原文件 (`.json.bak`)
|
||
|
|
- JSON 格式验证
|
||
|
|
- 修改确认提示
|
||
|
|
|
||
|
|
## 📁 文件列表
|
||
|
|
|
||
|
|
新增文件:
|
||
|
|
- `src/ui/config_editor.py` - 编辑器主类 (397 行)
|
||
|
|
- `edit_config.py` - 独立编辑器脚本 (24 行)
|
||
|
|
- `CONFIG_EDITOR_GUIDE.md` - 使用指南
|
||
|
|
- `test_config_editor.py` - 测试脚本
|
||
|
|
|
||
|
|
修改文件:
|
||
|
|
- `src/ui/main_window.py` - 添加菜单项和编辑方法
|
||
|
|
- `src/utils/config.py` - 导出 config_dir
|
||
|
|
|
||
|
|
## 🚀 使用方式
|
||
|
|
|
||
|
|
### 方式一: 主窗口菜单
|
||
|
|
```
|
||
|
|
1. 打开应用
|
||
|
|
2. 点击 "工具" → "编辑配置文件"
|
||
|
|
3. 选择要编辑的 JSON 文件
|
||
|
|
4. 修改配置
|
||
|
|
5. 点击 "保存"
|
||
|
|
```
|
||
|
|
|
||
|
|
### 方式二: 快捷键
|
||
|
|
```
|
||
|
|
Ctrl+, 直接打开编辑器
|
||
|
|
```
|
||
|
|
|
||
|
|
### 方式三: 独立脚本
|
||
|
|
```bash
|
||
|
|
python edit_config.py
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🔧 技术实现
|
||
|
|
|
||
|
|
### ConfigEditorWindow 类
|
||
|
|
- 继承 `QDialog`
|
||
|
|
- 提供树形编辑界面
|
||
|
|
- 自定义委托 (`ConfigEditorDelegate`)
|
||
|
|
- 信号: `config_changed(dict)`
|
||
|
|
|
||
|
|
### ConfigEditorDelegate 类
|
||
|
|
- 自定义项委托
|
||
|
|
- 为不同类型创建合适的编辑器
|
||
|
|
- 处理数据读写转换
|
||
|
|
|
||
|
|
## ✨ 特点
|
||
|
|
|
||
|
|
1. **用户友好**
|
||
|
|
- 树形结构清晰直观
|
||
|
|
- 支持展开/折叠
|
||
|
|
- 实时修改反馈
|
||
|
|
|
||
|
|
2. **安全可靠**
|
||
|
|
- 自动备份原文件
|
||
|
|
- JSON 格式验证
|
||
|
|
- 异常处理完善
|
||
|
|
|
||
|
|
3. **功能完整**
|
||
|
|
- 支持所有 JSON 数据类型
|
||
|
|
- 智能编辑器选择
|
||
|
|
- 灵活的文件选择
|
||
|
|
|
||
|
|
4. **易于维护**
|
||
|
|
- 代码注释详细
|
||
|
|
- 函数职责单一
|
||
|
|
- 错误日志记录
|
||
|
|
|
||
|
|
## 📝 示例
|
||
|
|
|
||
|
|
### 编辑配置值
|
||
|
|
```
|
||
|
|
1. 展开 "serial" 节点
|
||
|
|
2. 点击 "default_baudrate" 的值 (115200)
|
||
|
|
3. 在弹出的 QSpinBox 中输入新值
|
||
|
|
4. 按 Enter 或点击其他位置确认
|
||
|
|
5. 点击 "保存"
|
||
|
|
```
|
||
|
|
|
||
|
|
### 切换布尔值
|
||
|
|
```
|
||
|
|
1. 展开 "serial" 节点
|
||
|
|
2. 点击 "auto_detect_ports" 的值 (true)
|
||
|
|
3. 在弹出的 QCheckBox 中勾选或取消
|
||
|
|
4. 点击 "保存"
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🔍 验证状态
|
||
|
|
|
||
|
|
✅ 编译检查: 通过
|
||
|
|
✅ 导入检查: 通过
|
||
|
|
✅ 配置文件检测: 通过
|
||
|
|
✅ 路径验证: 通过
|
||
|
|
|
||
|
|
```
|
||
|
|
d:\production_test_tool\config\config.json (存在)
|
||
|
|
d:\production_test_tool\config\test_items.json (存在)
|
||
|
|
```
|
||
|
|
|
||
|
|
## 📚 相关文档
|
||
|
|
|
||
|
|
- [CONFIG_EDITOR_GUIDE.md](CONFIG_EDITOR_GUIDE.md) - 详细使用指南
|
||
|
|
- [src/ui/config_editor.py](src/ui/config_editor.py) - 源代码
|
||
|
|
- [edit_config.py](edit_config.py) - 独立编辑脚本
|
||
|
|
|
||
|
|
## 🎓 后续扩展
|
||
|
|
|
||
|
|
可进一步添加的功能:
|
||
|
|
- [ ] 配置预设快速切换
|
||
|
|
- [ ] 配置验证规则定义
|
||
|
|
- [ ] 配置差异对比工具
|
||
|
|
- [ ] 配置历史版本管理
|
||
|
|
- [ ] 实时配置预览
|
||
|
|
|
||
|
|
## 📞 技术支持
|
||
|
|
|
||
|
|
如遇问题,请查看:
|
||
|
|
1. `CONFIG_EDITOR_GUIDE.md` 故障排除章节
|
||
|
|
2. 应用日志文件 (`logs/` 目录)
|
||
|
|
3. 配置备份文件 (`*.json.bak`)
|