这个程序只需要做到一件事,也只能做这一件事:点击开始考试,对指定的时长倒计时
对于Windows用户:请您下载最新的release来运行
对于Linux用户:请先使用您所用发行版的包管理器安装'python3-tk',将main.py第一行下挪一行,第一行为'#!/usr/bin/python3'
对此文件加入x权限运行即可
ExamCountdown 是一款基于 Python Tkinter 开发的轻量考试倒计时工具,支持 单次考试倒计时 和 多日/多次考试管理 两大核心功能。无需复杂配置,通过简单的图形界面即可快速设置考试信息、查看考试日程并实时显示倒计时,适合学生、教师等需要管理考试时间的场景。
- Python 版本:3.6 及以上
- 依赖库:无额外第三方库(基于 Python 标准库 tkinter 、 json 、 datetime 开发)
- 运行方式:直接运行 main.py ,无需安装额外依赖
- 主界面介绍
运行 main.py 后,将显示主功能窗口,包含 4 个核心按钮:
按钮名称 功能描述 退出 关闭工具 开始考试 快速设置单次考试并启动倒计时 设定多日或多次考试 管理多日考试(添加/修改/删除日期/考试) 读取多日或多次考试并开始 加载已保存的多日考试,自动显示今日考试倒计时
- 功能1:单次考试倒计时(快速使用)
适合临时设置一场考试的场景,步骤如下:
1. 主界面填写考试信息:
- 考试科目:输入科目名称(如“数学”)
- 时长(分钟):默认 120 分钟,可修改(需为正整数)
- 开始时间:默认当前时间,可修改(格式: HH:MM ,如 09:30 ) 2. 点击【开始考试】按钮:
- 若当前时间早于考试开始时间:显示“距离考试开始还有XX时间”,到点自动切换为考试进行中倒计时
- 若考试已开始且未结束:直接显示“考试进行中,剩余XX时间”
- 若考试已结束:显示“考试结束!”
- 功能2:多日/多次考试管理(进阶使用)
适合需要管理多天、多场考试的场景,支持添加、修改、删除考试日期及考试信息,步骤如下:
3.1 进入管理界面
主界面点击【设定多日或多次考试】,打开多日考试管理窗口。
3.2 核心操作:日期管理(左侧区域)
- 添加日期:点击【+ 添加日期】,输入日期(格式: YYYY-MM-DD ,如 2025-12-25 ),确认后添加到日期列表
- 修改日期:右键点击日期列表中的目标日期,选择【修改日期】,输入新日期:
- 若新日期不存在:原日期的所有考试自动迁移到新日期
- 若新日期已存在:询问是否合并考试(合并后原日期考试追加到新日期)
- 删除日期:右键点击日期列表中的目标日期,选择【删除日期】,确认后删除该日期及旗下所有考试
3.3 核心操作:考试信息管理(右侧区域)
1. 先在左侧日期列表中选中目标日期(选中后右侧【+ 添加单科时间】按钮激活) 2. 点击【+ 添加单科时间】,填写考试信息:
- 科目:输入考试科目
- 开始时间:格式 HH:MM (如 14:00 )
- 时长(分钟):正整数(如 90 )
- 确认后添加到该日期的考试列表(自动检查时间冲突,避免同一时间重复添加) 3. 修改考试:右键点击右侧表格中的目标考试,选择【修改考试】,修改信息后确认(支持修改科目、时间、时长,自动检查时间冲突) 4. 删除考试:右键点击右侧表格中的目标考试,选择【删除考试】,确认后删除该场考试
3.4 保存数据
- 所有修改操作后,窗口标题会显示“-有未保存的考试!”,提醒手动保存
- 点击【保存】按钮,将所有考试信息写入 exam_schedule.json 文件(保存路径为程序所在目录)
- 关闭窗口时,若有未保存数据,会提示“是否保存后关闭”
- 功能3:加载多日考试并启动倒计时
1. 确保已通过“多日考试管理”功能添加并保存考试数据 2. 主界面点击【读取多日或多次考试并开始】:
- 自动加载 exam_schedule.json 中的数据,显示所有考试日程表格
- 自动识别今日考试,按时间排序:
- 优先显示“距离下一场考试开始还有XX时间”
- 若当前有考试进行中,显示“考试进行中,剩余XX时间”
- 若今日所有考试已结束,显示“今日所有考试已结束”,5秒后自动关闭窗口
1. 时间格式错误:提示“您需要输入正确的时间格式”,请确保时间输入为 HH:MM (英文冒号),如 08:45 2. 文件读取失败:提示“未找到考试日程文件”或“读取文件失败”,检查 exam_schedule.json 是否存在且未被损坏(若损坏可删除文件,重新添加考试) 3. 弹窗位置错误:弹窗显示在主窗口而非当前操作窗口,程序已通过 parent 参数修复,确保弹窗跟随当前操作窗口显示 4. 缩进错误/变量未定义:若运行报错,检查 main.py 中代码缩进是否统一(建议使用 4 个空格缩进),或重新复制完整代码替换
1. 多日考试数据仅在点击【保存】按钮后才会写入文件,未保存时关闭窗口会丢失修改 2. exam_schedule.json 为 JSON 格式文件,请勿手动修改内容,否则可能导致读取失败 3. 单次考试倒计时启动后,关闭倒计时窗口即可结束当前倒计时 4. 若需同时管理多场考试,建议使用“多日/多次考试管理”功能,避免重复设置