v1.3.0 变更日志
新功能
- 顶点着色算法 (#17):Welsh-Powell 贪心 + 回溯精确求解。≤30 顶点精确求色数,>30 顶点使用近似。GUI 按色类高亮顶点。
- Dijkstra 多解支持 (#13):通过前驱 DAG + DFS 回溯枚举所有权重相等的最短路径(上限 50 条),GUI 提供上一条/下一条导航。
- Help 菜单问题反馈入口:新增"提交问题反馈"菜单项,方便用户从应用内跳转 GitHub Issues。
修复
- 符号输入 BUG (#18):
"A"---"B"等引号顶点名 + 无向边组合不再被误判为引号权重。parseOperator()新增前瞻探测区分引号权重与引号右顶点。 - 中文路径/文件名支持 (#12):所有文件 I/O 统一使用
QFile+QString路径(Windows 宽字符 API),替换原有的窄字符串流。中文路径和文件名均可正常读写。 - 更新检查器优化:新增频率限制守卫 + 每日自动检查上限,防止 GitHub API 限流。
改进
- 顶点圆圈自适应大小 (#14):通过
QFontMetrics测量标签文本宽度动态调整半径(20–80px 区间),长标签不再溢出圆圈。 - 移除冗余底部按钮:Open/Undo/Redo 按钮已从底部栏移除(菜单和快捷键仍可用),界面更简洁。
文档
- LLM 提示词模板 (#9):合并到
MANUAL.html,便携包内可直接查看。提示词覆盖完整图数据格式规范,支持多图输出(各自独立代码块)。 - README & MANUAL 同步 v1.3.0:算法计数更新(10→11),补充顶点着色、Dijkstra 多解、自适应圆圈、问题反馈入口等文档说明。
测试方案
| 功能 | 操作 | 预期 |
|---|---|---|
| 顶点着色 | 打开无向图 → 选择"顶点着色" → 执行 | 顶点按色类着色,状态栏显示色数 |
| Dijkstra 多解 | 输入含等权多路径的图 → Dijkstra → 上一条/下一条 | 导航切换不同等权路径 |
| 引号顶点 + 无向边 | 输入 "A"---"B" → 解析 |
正常解析,不报错 |
| 中文路径 | 将 .graph 文件放在中文路径下 → 打开/保存 |
正常读写 |
| 长节点名 | 创建顶点名 20+ 字符 → 解析 | 圆圈自动放大,文字不溢出 |
| LLM 提示词 | 便携包内打开 MANUAL.html → LLM 提示词模板章节 | 内容完整,可直接复制 |
| 便携版 | 解压 GraphViz-v1.3.0-portable.zip → 运行 |
功能完整,无需安装 Qt |
修改文件
CMakeLists.txt # 版本 1.3.0
CMakePresets.json # 启用 CMAKE_EXPORT_COMPILE_COMMANDS
README.md # v1.3.0 功能文档同步
include/GraphAlgorithm.h # ColoringResult 结构体 + PathResult 多解字段
src/GraphAlgorithm.cpp # 顶点着色 + Dijkstra 多解前驱 DAG + DFS 回溯
src/GraphParser.cpp # parseOperator 前瞻探测修复引号权重误判
src/gui/GraphWidget.cpp # 顶点圆圈自适应大小 + 着色高亮支持
src/gui/GraphWidget.h # computeRadii + m_vertexRadii + 组件着色边开关
src/gui/MainWindow.cpp # 顶点着色调度 + Dijkstra 多解导航 + 问题反馈菜单 + 移除冗余按钮
src/gui/MainWindow.h # m_hasPathResult 字段
src/gui/UpdateChecker.cpp # 频率限制守卫 + 每日检查上限
src/gui/UpdateChecker.h # 新增限流成员变量
docs/MANUAL.html # LLM 提示词模板 + v1.3.0 功能文档同步