|
9 | 9 | 对此文件加入x权限运行即可 |
10 | 10 |
|
11 | 11 |
|
12 | | -## 2.软件如何使用 |
13 | | - |
14 | | -软件现有两个功能,一是最基础的考试倒计时,二是多日考试倒计时。 |
15 | | -### 基础的考试倒计时 |
16 | | -### 多日考试倒计时 |
17 | | - |
| 12 | + |
| 13 | +## 1.介绍 |
| 14 | + |
| 15 | +ExamCountdown 是一款基于 Python Tkinter 开发的轻量考试倒计时工具,支持 单次考试倒计时 和 多日/多次考试管理 两大核心功能。无需复杂配置,通过简单的图形界面即可快速设置考试信息、查看考试日程并实时显示倒计时,适合学生、教师等需要管理考试时间的场景。 |
| 16 | + |
| 17 | +## 2.环境要求 |
| 18 | + |
| 19 | +- Python 版本:3.6 及以上 |
| 20 | +- 依赖库:无额外第三方库(基于 Python 标准库 tkinter 、 json 、 datetime 开发) |
| 21 | +- 运行方式:直接运行 main.py ,无需安装额外依赖 |
| 22 | + |
| 23 | +## 3、文件结构 |
| 24 | + |
| 25 | +plaintext |
| 26 | +ExamCountdown/ |
| 27 | +├─ main.py # 核心程序文件(包含所有功能逻辑) |
| 28 | +├─ exam_schedule.json # 多日考试数据存储文件(自动生成) |
| 29 | +└─ README.md # 使用说明文档 |
| 30 | + |
| 31 | + |
| 32 | +- exam_schedule.json :自动存储多日考试信息,删除后会丢失历史数据,请勿随意修改文件格式。 |
| 33 | + |
| 34 | +## 4.核心功能使用说明 |
| 35 | + |
| 36 | +1. 主界面介绍 |
| 37 | + |
| 38 | +运行 main.py 后,将显示主功能窗口,包含 4 个核心按钮: |
| 39 | + |
| 40 | +按钮名称 功能描述 |
| 41 | +退出 关闭工具 |
| 42 | +开始考试 快速设置单次考试并启动倒计时 |
| 43 | +设定多日或多次考试 管理多日考试(添加/修改/删除日期/考试) |
| 44 | +读取多日或多次考试并开始 加载已保存的多日考试,自动显示今日考试倒计时 |
| 45 | + |
| 46 | +2. 功能1:单次考试倒计时(快速使用) |
| 47 | + |
| 48 | +适合临时设置一场考试的场景,步骤如下: |
| 49 | + |
| 50 | +1. 主界面填写考试信息: |
| 51 | +- 考试科目:输入科目名称(如“数学”) |
| 52 | +- 时长(分钟):默认 120 分钟,可修改(需为正整数) |
| 53 | +- 开始时间:默认当前时间,可修改(格式: HH:MM ,如 09:30 ) |
| 54 | +2. 点击【开始考试】按钮: |
| 55 | +- 若当前时间早于考试开始时间:显示“距离考试开始还有XX时间”,到点自动切换为考试进行中倒计时 |
| 56 | +- 若考试已开始且未结束:直接显示“考试进行中,剩余XX时间” |
| 57 | +- 若考试已结束:显示“考试结束!” |
| 58 | + |
| 59 | +3. 功能2:多日/多次考试管理(进阶使用) |
| 60 | + |
| 61 | +适合需要管理多天、多场考试的场景,支持添加、修改、删除考试日期及考试信息,步骤如下: |
| 62 | + |
| 63 | +3.1 进入管理界面 |
| 64 | + |
| 65 | +主界面点击【设定多日或多次考试】,打开多日考试管理窗口。 |
| 66 | + |
| 67 | +3.2 核心操作:日期管理(左侧区域) |
| 68 | + |
| 69 | +- 添加日期:点击【+ 添加日期】,输入日期(格式: YYYY-MM-DD ,如 2025-12-25 ),确认后添加到日期列表 |
| 70 | +- 修改日期:右键点击日期列表中的目标日期,选择【修改日期】,输入新日期: |
| 71 | +- 若新日期不存在:原日期的所有考试自动迁移到新日期 |
| 72 | +- 若新日期已存在:询问是否合并考试(合并后原日期考试追加到新日期) |
| 73 | +- 删除日期:右键点击日期列表中的目标日期,选择【删除日期】,确认后删除该日期及旗下所有考试 |
| 74 | + |
| 75 | +3.3 核心操作:考试信息管理(右侧区域) |
| 76 | + |
| 77 | +1. 先在左侧日期列表中选中目标日期(选中后右侧【+ 添加单科时间】按钮激活) |
| 78 | +2. 点击【+ 添加单科时间】,填写考试信息: |
| 79 | +- 科目:输入考试科目 |
| 80 | +- 开始时间:格式 HH:MM (如 14:00 ) |
| 81 | +- 时长(分钟):正整数(如 90 ) |
| 82 | +- 确认后添加到该日期的考试列表(自动检查时间冲突,避免同一时间重复添加) |
| 83 | +3. 修改考试:右键点击右侧表格中的目标考试,选择【修改考试】,修改信息后确认(支持修改科目、时间、时长,自动检查时间冲突) |
| 84 | +4. 删除考试:右键点击右侧表格中的目标考试,选择【删除考试】,确认后删除该场考试 |
| 85 | + |
| 86 | +3.4 保存数据 |
| 87 | + |
| 88 | +- 所有修改操作后,窗口标题会显示“-有未保存的考试!”,提醒手动保存 |
| 89 | +- 点击【保存】按钮,将所有考试信息写入 exam_schedule.json 文件(保存路径为程序所在目录) |
| 90 | +- 关闭窗口时,若有未保存数据,会提示“是否保存后关闭” |
| 91 | + |
| 92 | +4. 功能3:加载多日考试并启动倒计时 |
| 93 | + |
| 94 | +1. 确保已通过“多日考试管理”功能添加并保存考试数据 |
| 95 | +2. 主界面点击【读取多日或多次考试并开始】: |
| 96 | +- 自动加载 exam_schedule.json 中的数据,显示所有考试日程表格 |
| 97 | +- 自动识别今日考试,按时间排序: |
| 98 | +- 优先显示“距离下一场考试开始还有XX时间” |
| 99 | +- 若当前有考试进行中,显示“考试进行中,剩余XX时间” |
| 100 | +- 若今日所有考试已结束,显示“今日所有考试已结束”,5秒后自动关闭窗口 |
| 101 | + |
| 102 | +## 5.常见问题解决 |
| 103 | + |
| 104 | +1. 时间格式错误:提示“您需要输入正确的时间格式”,请确保时间输入为 HH:MM (英文冒号),如 08:45 |
| 105 | +2. 文件读取失败:提示“未找到考试日程文件”或“读取文件失败”,检查 exam_schedule.json 是否存在且未被损坏(若损坏可删除文件,重新添加考试) |
| 106 | +3. 弹窗位置错误:弹窗显示在主窗口而非当前操作窗口,程序已通过 parent 参数修复,确保弹窗跟随当前操作窗口显示 |
| 107 | +4. 缩进错误/变量未定义:若运行报错,检查 main.py 中代码缩进是否统一(建议使用 4 个空格缩进),或重新复制完整代码替换 |
| 108 | + |
| 109 | +## 6.注意事项 |
| 110 | + |
| 111 | +1. 多日考试数据仅在点击【保存】按钮后才会写入文件,未保存时关闭窗口会丢失修改 |
| 112 | +2. exam_schedule.json 为 JSON 格式文件,请勿手动修改内容,否则可能导致读取失败 |
| 113 | +3. 单次考试倒计时启动后,关闭倒计时窗口即可结束当前倒计时 |
| 114 | +4. 若需同时管理多场考试,建议使用“多日/多次考试管理”功能,避免重复设置 |
18 | 115 |
|
19 | 116 |
|
|
0 commit comments