# TODO **Repository Path**: incoparab/todo ## Basic Information - **Project Name**: TODO - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-02 - **Last Updated**: 2026-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 待办事项管理 基于 Python + PyQt5 的本地待办事项管理工具,支持普通模式和极简模式两种视图。 ## 功能清单 ### 清单管理 - 每日清单:同一天只保留一个,自动按日期标题命名(如"6月15日 周一") - 项目清单:自定义名称,适合长期跟踪的项目任务 - 清单颜色:6 种可选颜色标识 - 清单排序:进行中置顶 → 今日已完成居中 → 非今日已完成沉底 ### 任务管理 - 添加/编辑/删除任务 - 任务完成/取消完成 - 三种优先级:紧急(红)、正常(蓝)、长期(绿) - 任务按未完成→已完成、优先级、创建时间排序 - 编辑弹窗支持修改任务内容和优先级 ### 视图模式 - **普通模式**(980×680):左侧清单列表 + 右侧任务详情 - **极简模式**(380×550):两个固定高度卡片(每日待办 / 项目待办) - 模式切换不丢失状态 ### 数据管理 - 本地 JSON 存储,无需数据库 - 保存前自动备份(最多保留 5 份带时间戳的备份文件) - 导出为 JSON 文件 - 从 JSON 文件导入(自动生成新 ID 避免冲突) - 撤销删除(Ctrl+Z,最多 20 步) ### 系统集成 - 窗口置顶(Win32 API) - 开机自启动(Windows 注册表) - 快捷键:Ctrl+N 聚焦输入、Ctrl+Z 撤销 ## 项目架构 ```text 待办事项管理/ ├── main.py # 入口:QApplication 初始化、主题加载、启动主窗口 ├── build.ps1 # PyInstaller 打包脚本 ├── requirements.txt # 依赖:PyQt5, pyinstaller ├── icon.ico / icon.svg # 应用图标 ├── notes.json # 开发模式数据文件 ├── test_smoke.py # 冒烟测试(86 项) └── todo_app/ # 核心模块 ├── models.py # 数据模型层 ├── store.py # 持久化层 ├── main_window.py # 业务逻辑中枢 ├── sidebar.py # 普通模式 - 侧边栏 ├── task_panel.py # 普通模式 - 任务面板 ├── compact_view.py # 极简模式 - 卡片布局 ├── widgets.py # 可复用 UI 组件 ├── task_edit_dialog.py # 任务编辑弹窗 ├── draggable_task_list.py # 拖拽列表(已弃用) ├── autostart.py # 开机自启(Windows 注册表) └── theme.py # 全局 QSS 样式 ``` ### 模块关系 ```text main.py └─► MainWindow (main_window.py) │ ├─ 普通模式 ─┬─► sidebar.py 左侧:清单列表 + 工具按钮 │ └─► task_panel.py 右侧:标题 + 筛选 + 任务列表 + 输入框 │ ├─ 极简模式 ───► compact_view.py 两个固定高度卡片 │ ├─ 数据层 ───┬─► models.py Note / TodoItem / 排序逻辑 │ └─► store.py JSON 读写 / 自动备份 │ ├─ UI 组件 ─┬─► widgets.py TaskRow / CompactNoteCard / DrawerHeader │ └─► task_edit_dialog.py │ └─ 系统 ─────► autostart.py 开机自启 theme.py 全局样式 ``` ### 数据流 ```text 用户操作 ──► MainWindow 方法 ──► models 创建/修改对象 ──► store 持久化 ──► 刷新 UI ``` ### 极简模式布局 ```text ┌─ 380×550 ─────────────────────┐ │ 我的待办 [正常][自启][置顶] │ │ 2 个清单 · 5/8 已完成 │ ├─ 每日待办 ──────────────────────┤ ← 固定高度卡片 │ ▼ 6月15日 周一 [+] │ │ [✓] 买菜 │ │ [ ] 写报告 │ ├─ 项目待办 ──────────────────────┤ ← 固定高度卡片 │ ▶ 项目A [+] │ │ ▼ 项目B [+] │ │ [ ] 设计稿 │ └─────────────────────────────────┘ ``` ## 数据位置 | 场景 | 路径 | |------|------| | 开发运行 | `./notes.json` | | 打包后 exe | `%APPDATA%\TodoManager\notes.json` | ## 开发 ```powershell pip install -r requirements.txt python main.py ``` ## 测试 ```powershell pip install pytest python -m pytest test_smoke.py -v ``` ## 打包 ```powershell .\build.ps1 ``` 输出:`dist\待办事项管理.exe`