PhiChartSearch 更新日志 (b1.0.5 -> Qt v1.0.0)
概述
此更新将应用程序从基于 Tkinter 的实现 (b1.0.5) 迁移至基于 PyQt5 和 QFluentWidgets 的多窗口、面向对象的实现 (Qt v1.0.0)。新版本引入了工程管理器主界面,改进了用户界面和用户体验,并增加了一些新功能。
主要变更
1. GUI 框架迁移
- 从 Tkinter 迁移至 PyQt5 + QFluentWidgets:
- 整个 GUI 系统已从 Tkinter 重写为 PyQt5,并使用 QFluentWidgets 组件库来实现现代化、更美观的界面。
- 所有窗口、对话框和控件均已重新设计和实现。
2. 架构重构
- 从单文件、多窗口模式转变为面向对象、多窗口模式:
- 代码结构从一个包含所有逻辑的单文件转变为多个类,每个类负责特定的功能(如主窗口、工程窗口、搜索窗口等)。
- 引入了
MainWindow(主工程管理器),ProjectWindow(工程管理),CreateProjectDialog(创建工程),ChartSearchWindow(谱面搜索),AudioSearchWindow(音频搜索),ModifyInfoDialog(修改信息),ModifyArtDialog(修改曲绘),AboutDialog(关于) 等类。 - 使用
current_windows字典来管理当前打开的窗口,避免重复打开同一工程。
3. 配置文件变更
- 配置文件结构更新:
- 配置文件
chart_analyzer_config.json的结构已更改。旧版本使用last_folder和audio_folder,新版本使用program_folder来表示所有工程的总存放路径。 - 移除了
PROJECT_CONFIG_FILE(工程配置文件),改为在每个工程文件夹内直接读取info.txt来获取工程信息。 save_config函数的实现已更新以适应新的配置结构。
- 配置文件
4. 工程管理
- 引入工程管理器主界面:
- 新增
MainWindow类作为应用程序的入口点,提供程序文件夹设置、工程列表展示、创建/打开/删除/刷新工程等功能。 - 工程列表以表格形式展示,包含工程名、谱面名称、难度和状态(完整/不完整)。
- 工程状态检查逻辑已更新,现在会检查谱面文件、音频文件和曲绘文件是否存在。
- 新增
- 工程信息处理:
create_info_txt函数在创建时不再需要传入完整的project_info字典,而是只传入project_name,并在创建后通过read_info_txt和update_info_txt来设置详细信息。update_info_txt函数的实现略有调整,但功能保持一致。
5. 文件操作和搜索
- 谱面搜索:
ChartSearchWindow类负责谱面搜索功能,界面和交互已完全重做。- 新增曲目预览区域,可以显示选中谱面的曲绘缩略图和相关信息。
- 搜索结果表格支持整行选择,并在选择时更新预览。
- 添加谱面到工程的逻辑已调整,现在会关闭搜索窗口并刷新工程窗口。
- 音频搜索:
AudioSearchWindow类负责音频搜索功能,界面和交互已完全重做。- 新增试听按钮,可以直接播放选中的音频文件。
- 添加音频到工程的逻辑已调整,现在会关闭搜索窗口并刷新工程窗口。
- 文件管理:
ProjectWindow类提供了对工程内文件(信息、谱面、音频、曲绘)的管理界面,可以查看文件状态、修改或删除文件。- 删除谱面、音频或曲绘文件的功能已实现。
6. 曲绘处理
- 曲绘生成:
create_chart_art函数增加了font_path参数,允许用户指定字体文件。- 改进了字体加载和错误处理逻辑,使其更加健壮。
- 曲绘修改:
- 新增
ModifyArtDialog类,提供重新生成曲绘或选择本地图片替换的功能。 - 在创建工程时,用户可以选择使用本地曲绘文件或自动生成曲绘。
- 新增
7. 新增功能
- 一键打包zip:
ProjectWindow类新增pack_project方法,可以将工程的核心文件(info.txt, 谱面, 音频, 曲绘)打包成一个 zip 文件。
- 关于对话框:
- 新增
AboutDialog类,提供软件版本、技术信息、版权声明和相关链接。
- 新增
8. 用户体验改进
- 现代化界面:
- 使用 QFluentWidgets 提供了更现代化、更美观的界面组件。
- 窗口布局和控件设计更加清晰和用户友好。
- 交互优化:
- 添加了进度条来显示搜索和分析的进度。
- 按钮和控件的交互反馈更加明确。
- 错误提示使用
MessageBox,信息提示更加友好。
9. 代码质量
- 错误处理:
- 增加了更多的异常处理,提高了程序的健壮性。
- 代码结构:
- 代码结构更加清晰,模块化程度更高,易于维护和扩展。
总结
Qt v1.0.0 版本是一次重大的架构和界面升级,从 Tkinter 迁移到 PyQt5,引入了工程管理器,改进了用户界面和交互,并增加了新功能。这些变更显著提升了用户体验和软件的可维护性。
PyQt版本 v1.0.0 下载链接
Github:https://github.com/catmcbe/PhiChartSearch 从Releases下载:https://github.com/catmcbe/PhiChartSearch/releases/tag/PyQt 国内网盘中转: 蓝奏: https://wwqg.lanzoub.com/iscIH39xhzeh 密码:cgg0 123网盘: https://www.123865.com/s/trXiVv-3MUov 官网:phi.146512.xyz