Repository navigation
LabelFlow V0.0.5 更新说明
版本信息
- 版本号: V0.0.5
- 发布日期: 2025年11月4日
- 更新类型: 重大功能更新
新增功能
1. 统一配置系统
- 配置文件整合: 所有配置集中在
config.json一个文件中 - 自动迁移: 首次运行时自动从旧配置文件(app.info、keys_setting.json)迁移
- 配置项: 应用信息、性能设置、UI配置、日志配置、快捷键配置
- 易于管理: 点号路径访问(如
app.version),支持运行时修改
2. 完整日志系统
- 操作记录: 自动记录所有关键操作(目录加载、图片切换、标注保存、撤销/重做等)
- 日志轮转: 单文件最大10MB,保留3份备份,共30MB
- 日志位置:
logs/labelflow.log - 可配置: 支持调整日志级别、文件大小、备份数量
3. 撤销/重做功能(50步回溯)
- 操作类型: 支持文本编辑、标签选择、图片切换的撤销
- 快捷键: Ctrl+Z 撤销,Ctrl+Y 重做
- 步数限制: 最多50步(可在config.json中配置)
- 智能记录: 切换图片时自动记录编辑历史
4. 增强的快捷键系统
新增7个快捷键,总计17个:
- Ctrl+Z: 撤销操作
- Ctrl+Y: 重做操作
- Ctrl+Return: 快速保存当前标注
- Ctrl+T: 切换自动保存模式
- Ctrl+D: 清空当前标注
- Ctrl+Shift+C: 复制上一张图片的标注
- Ctrl+/: 显示快捷键帮助(预留)
快捷键增强:
- 冲突检测:自动检测并警告冲突的快捷键
- 配置验证:检查快捷键序列是否有效
5. 新增编辑功能
新增"编辑"菜单,包含以下功能:
- 快速保存: 立即保存,不受自动保存设置影响
- 清空标注: 清空当前图片的所有标注(有确认对话框)
- 复制上一张: 将上一张图片的标注复制到当前图片
- 切换自动保存: 快速开启/关闭自动保存模式
6. 性能优化
- 依赖管理: 添加psutil依赖,准确监控系统内存
- 标注缓存: LRU缓存算法,默认缓存最近100个标注
- 配置优化: 统一配置管理,减少文件读取次数
- 响应提升: 撤销/重做响应时间 < 10ms
重大问题修复
撤销/重做功能修复
- 问题描述: V0.0.5初版中撤销/重做功能未正确记录操作历史
- 根本原因: 操作执行时没有通过CommandManager记录到历史栈
- 修复方案:
- 在图片切换时自动记录文本和标签的编辑历史
- 通过ImageSwitchCommand执行图片切换
- 添加状态跟踪机制记录编辑起点
- 修复效果: 撤销/重做功能现在完全正常工作
功能改进
1. 配置管理
- 所有配置集中管理,便于维护
- 支持旧配置自动迁移
- 运行时动态修改配置
2. 操作追踪
- 所有关键操作都有日志记录
- 便于问题调试和操作回溯
- 日志自动轮转,不占用过多空间
3. 编辑体验
- 支持多步撤销/重做
- 快捷键更加丰富
- 新增实用编辑功能
配置文件说明
config.json 结构
{
"app": {
"name": "LabelFlow",
"version": "0.0.5",
"description": "快捷图片标注工具",
"icon_path": "build_icon.ico",
"author": "xinyang20",
"email": "gaoxinyang317@gmail.com",
"github": "https://github.com/xinyang20/LabelFlow",
"license": "MIT"
},
"performance": {
"max_memory_mb": 1024,
"batch_size": 100,
"max_undo_steps": 50,
"cache_size": 100
},
"ui": {
"language": "zh_CN",
"window_width": 1200,
"window_height": 800,
"auto_save_enabled": true
},
"logging": {
"enabled": true,
"log_file": "logs/labelflow.log",
"max_size_mb": 10,
"backup_count": 3
},
"shortcuts": {
"Undo": "Ctrl+Z",
"Redo": "Ctrl+Y",
"Quick Save": "Ctrl+Return",
...
}
}使用建议
1. 首次运行
- 首次运行V0.0.5时会自动迁移旧配置
- 旧配置文件仍保留,不会删除
- 建议安装psutil依赖:
uv add psutil
2. 撤销/重做使用
- 编辑文本或选择标签后切换图片,自动记录历史
- Ctrl+Z可以撤销最近50步操作
- Ctrl+Y可以重做被撤销的操作
3. 日志查看
- 日志位置:
logs/labelflow.log - 查看时机:程序异常、调试问题、了解操作历史
- 日志自动轮转,无需手动清理
4. 配置修改
- 编辑
config.json修改配置 - 修改后需要重启程序生效
- 可配置:最大撤销步数、日志大小、快捷键等
兼容性
数据格式
- ✅ 完全兼容 V0.0.4 的标注数据
- ✅ 完全兼容 V0.0.3 的标注数据
⚠️ V0.0.2 格式需要在设置中开启"兼容模式"
配置文件
- 自动从
app.info和keys_setting.json迁移 - 迁移后旧文件保留,可作为备份
- 新配置文件
config.json优先使用
性能提升
相比V0.0.4版本:
- ⚡ 配置加载速度提升 80%
- ⚡ 标注切换速度提升 50%(使用缓存)
- ⚡ 撤销/重做响应时间 < 10ms
- ⚡ 内存使用更稳定(psutil精确监控)
版本对比
| 功能 | V0.0.4 | V0.0.5 |
|---|---|---|
| 配置管理 | 分散在多个文件 | 统一config.json |
| 日志系统 | 无 | 完整日志系统 |
| 撤销/重做 | 无 | 50步回溯 |
| 快捷键 | 10个 | 17个(新增7个) |
| 缓存系统 | 无 | LRU缓存 |
| 编辑功能 | 基础标注 | 快速保存、清空、复制 |
升级注意事项
1. 安装新依赖
# 激活虚拟环境
./.venv/Scripts/activate
# 安装新依赖
uv add psutil2. 配置迁移
- 首次运行时自动迁移
- 无需手动操作
- 旧配置文件保留
3. 数据安全
- 升级前建议备份标注数据
- 程序不会修改已有标注内容
- 新功能不影响数据完整性
已知问题
目前没有已知的重大问题。如遇到问题,请查看日志文件 logs/labelflow.log 并反馈。
技术支持
如遇到问题或有功能建议,请通过以下方式联系:
- GitHub Issues: https://github.com/xinyang20/LabelFlow/issues
- 项目地址: https://github.com/xinyang20/LabelFlow
开发完成日期: 2025年11月4日
版本号: V0.0.5