Skip to content

bugmaker2/Desire-Calculator

Repository files navigation

需求计算器 (Desire Calculator)

一个基于PyQt5开发的个人需求管理和花销预估桌面应用程序。

🎯 项目简介

需求计算器帮助你管理各种个人需求,并根据频率自动计算月度总花销和年度总花销。你可以通过开启/关闭不同的需求来动态调整花销预估,实现更好的财务规划。

✨ 主要功能

  • 📝 添加需求: 支持添加各种个人需求,如房屋月租、每周回家支出等
  • 频率设置: 支持每天、每周、每月、每季度、每年的频率设置
  • 💰 智能计算: 自动计算月度总花销和年度总花销
  • 动态控制: 可以随时开启或关闭某个需求,实时调整花销预估
  • 💾 数据持久化: 支持保存和加载需求数据
  • 🎨 现代化界面: 基于PyQt5的美观图形用户界面

🛠️ 技术栈

  • Python: 3.12+
  • PyQt5: 5.15.11+ (图形用户界面)
  • JSON: 数据存储格式

📦 安装和运行

环境要求

  • Python 3.12 或更高版本
  • PyQt5 5.15.11 或更高版本

安装步骤

  1. 克隆项目

    git clone <repository-url>
    cd DesireCaculator
  2. 安装依赖

    pip install PyQt5>=5.15.11
  3. 运行应用

    python main.py

🚀 使用指南

添加新需求

  1. 在左侧"添加新需求"区域填写信息:

    • 需求名称: 输入需求的描述,如"房屋月租"
    • 频率: 选择需求的频率(每天/每周/每月/每季度/每年)
    • 花销: 输入每次的花销金额(元)
  2. 点击"添加需求"按钮

管理需求

  • 启用/禁用: 点击需求项前的复选框来开启或关闭该需求
  • 删除需求: 点击需求项右侧的"删除"按钮删除该需求
  • 实时统计: 系统会自动计算并显示月度总花销和年度总花销

数据管理

  • 保存数据: 点击"保存数据"按钮将当前需求保存到 desires.json 文件
  • 加载数据: 点击"加载数据"按钮从文件加载之前保存的需求
  • 清空所有: 点击"清空所有"按钮删除所有需求

📊 示例需求

项目包含一个示例数据文件 sample_desires.json,包含以下常见需求:

需求名称 频率 花销(元) 月度花销
房屋月租 每月 3000 ¥3000.00
每周回家支出 每周 200 ¥866.00
每年送礼支出 每年 5000 ¥416.67
每月找对象支出 每月 500 ¥500.00
每月打理形象支出 每月 300 ¥300.00
每周看电影 每周 80 ¥346.40
每月旅游 每月 1000 ¥1000.00
每天吃饭 每天 50 ¥1500.00
每季度买衣服 每季度 800 ¥266.67

🧮 计算规则

系统根据频率自动计算月度花销:

  • 每天: 月度花销 = 单次花销 × 30
  • 每周: 月度花销 = 单次花销 × 4.33 (52/12)
  • 每月: 月度花销 = 单次花销
  • 每季度: 月度花销 = 单次花销 ÷ 3
  • 每年: 月度花销 = 单次花销 ÷ 12

年度花销 = 月度总花销 × 12

📁 项目结构

DesireCaculator/
├── main.py              # 主程序文件
├── sample_desires.json  # 示例数据文件
├── desires.json         # 用户数据文件(运行时生成)
├── pyproject.toml       # 项目配置文件
└── README.md           # 项目说明文档

🎨 界面特色

  • 现代化设计: 使用PyQt5构建的现代化界面
  • 响应式布局: 支持窗口大小调整
  • 直观操作: 清晰的布局和易于理解的交互
  • 实时反馈: 操作后立即更新统计信息

🔧 开发说明

主要类和方法

  • DesireCalculator: 主应用类
    • init_ui(): 初始化用户界面
    • create_left_panel(): 创建左侧添加需求面板
    • create_right_panel(): 创建右侧需求列表面板
    • add_desire(): 添加新需求
    • update_display(): 更新需求列表显示
    • update_statistics(): 更新统计信息
    • save_desires(): 保存数据
    • load_desires(): 加载数据

数据结构

每个需求包含以下字段:

{
  "desire_id": {
    "name": "需求名称",
    "frequency": "频率",
    "cost": 花销金额,
    "enabled": true/false
  }
}

🎯 使用场景

预算规划

  1. 添加所有可能的需求并设置优先级
  2. 设置月度预算目标
  3. 查看实时预算进度
  4. 根据优先级和预算情况调整需求

生活成本分析

  1. 添加当前所有生活需求并分类
  2. 按类别查看支出分布
  3. 分析哪些类别花费最多
  4. 使用筛选功能专注分析特定类别

目标储蓄

  1. 设置目标储蓄金额作为预算
  2. 计算当前总花销
  3. 通过优先级和类别筛选找到可优化支出
  4. 导出详细报告做长期规划

高级场景

家庭财务管理

  • 为不同家庭成员设置需求优先级
  • 按住房、教育、医疗等类别管理支出
  • 月度预算控制和年度规划

个人项目成本预估

  • 为个人项目添加相关需求
  • 设置项目预算上限
  • 实时监控项目成本

生活方式调整

  • 添加当前生活方式的所有需求
  • 设置预算目标
  • 通过优先级筛选找到可削减支出
  • 导出报告做决策支持

🐛 故障排除

常见问题

  1. 应用无法启动

    • 确保Python版本 >= 3.12
    • 确保PyQt5已正确安装:pip install PyQt5>=5.15.11
  2. 界面显示异常

    • 尝试调整窗口大小
    • 检查系统显示设置
  3. 数据无法保存

    • 检查当前目录是否有写入权限
    • 确保磁盘空间充足

获取帮助

如果遇到问题,可以:

  1. 检查控制台错误信息
  2. 确认依赖版本是否正确
  3. 重新安装PyQt5:pip install --upgrade PyQt5

📄 许可证

本项目采用MIT许可证。

🤝 贡献

欢迎提交Issue和Pull Request来改进这个项目!


开始你的需求管理之旅吧! 🎉

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages