Skip to content

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_folderaudio_folder,新版本使用 program_folder 来表示所有工程的总存放路径。
    • 移除了 PROJECT_CONFIG_FILE (工程配置文件),改为在每个工程文件夹内直接读取 info.txt 来获取工程信息。
    • save_config 函数的实现已更新以适应新的配置结构。

4. 工程管理

  • 引入工程管理器主界面:
    • 新增 MainWindow 类作为应用程序的入口点,提供程序文件夹设置、工程列表展示、创建/打开/删除/刷新工程等功能。
    • 工程列表以表格形式展示,包含工程名、谱面名称、难度和状态(完整/不完整)。
    • 工程状态检查逻辑已更新,现在会检查谱面文件、音频文件和曲绘文件是否存在。
  • 工程信息处理:
    • create_info_txt 函数在创建时不再需要传入完整的 project_info 字典,而是只传入 project_name,并在创建后通过 read_info_txtupdate_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