MRobot/FINANCE_UI_IMPROVEMENT.md
2025-11-25 19:13:17 +08:00

2.4 KiB
Raw Blame History

财务界面 UI 改进总结

修改内容

1. 统一使用 qfluentwidgets 组件

标签控件替换

  • : QTabWidget + QLabel
  • : SegmentedWidget + BodyLabel/StrongBodyLabel

消息提示替换

  • : QMessageBox
  • : InfoBar/Dialog (qfluentwidgets)

其他组件替换

  • QLabel → BodyLabel / StrongBodyLabel
  • QTableWidget 保留,但添加 qfluentwidgets 样式

2. 功能选择改进

使用 SegmentedWidget 替代 TabBar

self.segmented_widget = SegmentedWidget()
self.segmented_widget.insertItem(0, "bookkeeping", "做账")
self.segmented_widget.insertItem(1, "query", "查询")
self.segmented_widget.insertItem(2, "export", "导出")
self.segmented_widget.currentItemChanged.connect(self.on_tab_changed)

3. 表格优化

做账标签页表格

  • 列数: 5 (日期, 交易人, 金额, 备注, 操作)
  • 样式: 交替行颜色、自动调整列宽
  • 操作按钮: 查看、编辑、删除

查询标签页

  • 搜索过滤使用 CardWidget 包装
  • 表格显示查询结果
  • 操作按钮: 查看详情

统计信息

  • 使用 CardWidget 显示总额和记录数
  • 使用 StrongBodyLabel 强调显示

4. 对话框改进

CreateTransactionDialog

  • 使用 BodyLabel 替代 QLabel
  • 保持现有布局和功能

RecordViewDialog

  • 图片预览使用 BodyLabel
  • 支持图片显示

5. 消息提示改进

所有确认/警告/错误消息使用 InfoBar 或 Dialog

InfoBar.success(
    title="成功",
    content="记录已添加",
    isClosable=True,
    position=InfoBarPosition.TOP,
    duration=2000,
    parent=self
)

删除确认使用 Dialog

dialog = Dialog(
    title="确认删除",
    content="确定要删除这条记录吗?",
    parent=self
)

测试结果

所有 UI 组件验证通过
SegmentedWidget 正常工作
TableWidget 正常工作
标签页切换功能正常

文件修改

  • /Users/lvzucheng/Documents/R/MRobot/app/finance_interface.py - 主要修改
    • 导入调整
    • UI 组件替换
    • 样式优化
    • 消息提示更新

兼容性

  • PyQt5 ✓
  • qfluentwidgets >= 0.10.0 ✓
  • Python >= 3.7 ✓

后续建议

  1. 可考虑添加更多的快捷操作按钮
  2. 可以为表格添加上下文菜单
  3. 可以优化查询过滤的交互体验
  4. 可以添加数据导出的进度条显示