第14讲
用AI开发Python
桌面端应用
1添加任务,记录完成状态
2自动保存,关闭后继续使用
3从基础版到状态筛选
1. 明确需求
1个人使用,不做账号与联网
2新增、查看、完成、恢复、删除
3名称不能为空,修改后自动保存
4两条任务完成一条,重启后不变
需求提示词
我要为【使用者】开发【应用】。 必须支持:【具体操作】。 数据规则:【字段、校验和保存要求】。 本轮不做:【排除的功能】。 验收:【操作与预期结果】。 请先复述需求,指出不清楚的地方,不修改代码。
我要做一个个人使用的Python桌面ToDoList,不是网页。 支持新增、查看、完成与恢复、确认删除、统计。 任务只有id、title、completed;名称去除两端空格后不能为空。 变更立即保存JSON,关闭重开后状态不变;保存失败必须提示并保留原任务。 不做登录、联网、云同步或额外字段。 验收:新增两条,完成第一条,完成率50.0%,重启后不变。 先复述需求,不修改代码。
2. 补充上下文
1从零开始:没有代码也要说明
2新代码只放lesson14_desktop
3Python、Tk与独立演示数据
4检查窗口能否创建,不只检查导入
项目背景提示词
项目状态:【从零开始或已有内容】。 工作目录:【目录】;允许改动:【范围】。 运行环境:【语言版本和界面方式】。 数据保存:【位置与格式】。 先实际检查运行条件,报告限制,不创建业务代码。
从零开始,只在当前目录新建lesson14_desktop,不修改其他案例。 使用Python 3.10以上、tkinter和ttk、JSON,只用标准库。 默认数据在本案例data/tasks.json,--data可指定独立演示文件。 先检查Python版本,并尝试实际创建Tk窗口,不能只import tkinter。 若当前Comate执行环境不支持图形窗口,请保留错误并说明限制,不宣称GUI通过。
3. 审核开发计划
1对照需求:功能是否完整
2检查分工:核心、窗口、测试
3收紧范围:先基础版,后筛选
4核对方法:怎样运行,怎样验收
计划审核提示词
请根据已确认的【需求与环境】先给计划,不写代码。 列出每步功能、涉及文件、先后关系和验证方法。 审核后调整:【遗漏或超出的部分】。 本轮只做【第一阶段】,暂不做【后续功能】。 等我确认后再实施。
请按桌面ToDoList需求列出文件职责、实现顺序与验证方法,先不写代码。 计划中不要增加创建时间等字段,只保留id、title、completed。 todo_core.py处理任务与JSON;todo_app.py处理窗口;test_todo.py检查核心。 先基础版通过检查,再增加全部/未完成/已完成筛选。 写清两条完成一条、关闭重开和保存失败的检查方式,等我确认。
4. 实现基础版本
1先完成能运行的基础功能
2按钮调用Python核心函数
3核心负责修改与JSON保存
4先运行检查,再确认完成
基础版实现提示词
确认修订后的计划,本轮实现【基础功能】。 只修改【目录和文件】,保留【不可改动的内容】。 先编写并运行测试,再完成实现。 报告实际改动、运行结果与仍需人工检查的项目。 暂不实现【下一轮功能】。
确认修订后的计划,只在lesson14_desktop实现基础版,暂不加筛选。 创建todo_core.py、todo_app.py、test_todo.py、README.md。 中文窗口约900×600,含输入、列表、完成、恢复、确认删除和统计。 未选中不能误操作;JSON写入失败要报错,原任务和原文件保持不变。 支持--data,测试使用临时数据。先写并运行unittest,再实现。 报告真实结果;当前环境无法观察的GUI项目写待人工验证。
5. 运行桌面程序
1在本机创建真实桌面窗口
2用独立JSON文件演示
3先核对输入与任务列表
4界面操作逐项检查,不能推断
运行提示词
请使用【已验证的解释器】启动【程序入口】。 独立演示数据:【路径】,不修改源码或个人数据。 报告实际命令与运行结果。 工具不能打开窗口时保留错误,给出本机启动步骤,GUI状态写待验证。
启动lesson14_desktop/todo_app.py,独立数据使用data/classroom-demo.json。 先核对本机Python与Tk可创建窗口,不修改源码或默认数据。 若Comate环境无法打开窗口,请说明限制,并提供本机Python的启动命令。 不要把代码生成或测试通过写成桌面窗口已验证。
5. 反馈具体问题
1操作:模拟文件保存失败
2预期:提示失败,保留原任务
3实际:错误被忽略,内存仍改变
4限定修复,再重复原检查
问题反馈提示词
复现步骤:【操作或检查命令】。 预期:【应该出现的结果】。 实际:【错误原文或失败断言】。 相关文件:【位置】。 先说明原因,再最小修改;保留【接口与数据】。 修复后重复原检查,并检查受影响的旧功能。
独立检查发现todo_core.py的_save忽略写入异常。 当os.replace失败,新增、完成或删除仍改变内存,调用者误以为已保存。 预期明确报错,内存旧任务与磁盘原文件都保留。 请用mock模拟PermissionError,不修改系统权限或真实文件。 只修复持久化回滚和相关提示,保留TodoCore接口。 同时校验读入字段;重跑项目测试与test_desktop_contract.py,不修改独立断言。
6. 按需求验收
1两条完成一条,显示50.0%
2空名称拒绝,完成后可恢复
3删除可取消,确认后才移除
4关闭重开,名称和状态仍在
验收提示词
按已确认需求检查【版本】,不增加功能。 使用临时数据运行【测试命令】。 核对【正常操作、特殊输入与保存规则】。 另行人工操作界面并关闭重启。 记录真实输出和退出码;未执行的项目写待验证。
验收桌面ToDoList基础版,不增加功能。 运行test_todo.py和test_desktop_contract.py,使用临时目录。 检查新增、完成、恢复、删除、空名、损坏JSON与保存失败保护。 跨进程读回两条任务,完成一条,完成率50.0%。 GUI另行检查取消/确认删除和关闭重开,记录真实输出及退出码。 在ACCEPTANCE.md区分自动测试、人工验证和未验证项目。
7. 增加状态筛选
1只增加全部、未完成、已完成
2筛选只改显示,不删除任务
3完成率仍按全部任务计算
4新增功能后,重查原有操作
迭代提示词
在【已验收版本】上只增加【一项功能】。 先说明影响文件与验证方法,确认后再实施。 保留【原有接口、操作与数据规则】。 修改前保存检查点,完成后检查新旧功能。
在桌面ToDoList基础版上,业务只增加全部/未完成/已完成筛选。 先给方案,不立即修改。筛选只改变显示,不删除或改写任务,统计仍按全部任务计算。 保留原有操作、JSON保存、删除确认和--data。 同时改进列表获焦时选中首行、空格切换状态,方便键盘演示。 确认后保存基础版再实施,测试实际_visible_tasks方法并复查旧功能。
8. 整理交付文件
1源码:核心与窗口入口
2说明:环境、启动与数据位置
3测试:命令、结果和已知限制
4只打包必要文件,不含个人数据
交付整理提示词
整理【项目】的源码、运行说明、测试与验收记录。 写清环境、启动入口、数据位置和备份方法。 区分已验证与未验证,不夸大交付形式。 只打包必要文件,排除个人数据、缓存和账号信息。
整理lesson14_desktop的源码与README.md、ACCEPTANCE.md。 写清Python 3.10以上与可用Tk要求、todo_app.py入口、--data和默认JSON位置。 区分自动测试、实际桌面验证和未验证的系统/操作。 保留基础版与筛选版源码包,不含任务数据、缓存或账号信息。 这是需要Python环境的源码包,不是免安装软件,本轮不发布。
1 / 12
