
教室的墙上贴着一张A4纸,上面打印着我们的课程表。
每节课下课,总有人跑到门口凑近看"下节什么课"。那张纸太小了,后面的人踮着脚尖也看不清。更要命的是,黑板正上方的电子钟坏了很久了——看不了时间,也看不了下课还剩几分钟。
后来有个临时解决方案:老师买了些小磁贴,把课程写在黑板的角落。好歹能看了,但磁贴东倒西歪,风一吹掉两个,值日生擦黑板一擦没了一半。
2025年暑假,我想了想——既然大家缺的是一个随时能看时间、看课程的东西,不如直接做一个桌面工具。一打开电脑就知道今天上什么课、现在上到哪一节、距离中考还有多少天。
于是就有了桌面时钟倒计时组件。

从300行的计时器到1.6.1
第一个版本只有两个功能:显示时间 + 中考倒计时。代码300行,全在一个文件里,界面丑得像Windows 98。
第一批用户是我们班。同学们说"挺好的,但能不能顺便看看今天有什么课"——于是我加了课程表模块。
然后发现课程表不能自动标记现在上到哪节课——又加了定时器轮询、时间区间判断、上/下午区分。
接着有人说"能不能显示名言充充电"——接了一言API。英语老师说"顺便学个单词呗"——接了英语单词API。

功能就这么像滚雪球一样越滚越大。现在v1.6.1,功能列表长到我自己都吓一跳:
- 中考倒计时:动态显示距离中考的天数,颜色随紧迫程度变化(大于180天蓝绿色、90-180天橙色、小于90天红色)
- 智能课程表:自动显示今日课程,当前课程高亮,已结束灰色显示
- 名言/单词:一键切换,励志名言随机充电,英语单词每天学一个
- 迷你时钟窗口:可拖动的悬浮小窗,显示当前时间和下节课信息,全屏也不耽误看
- 桌面便签:黄色便签纸风格,支持标题编辑、字号调节、始终置顶
- 系统托盘:关闭窗口不退出,最小化到托盘,单击恢复
- Windows通知:早读提醒、放学提醒,支持自定义添加
- 天气显示:心知天气API,实时天气+温度
- AI绘画工具:生成式AI画图功能(队友强烈要求加的彩蛋功能)
- 每日一笑:弱智吧段子和毒鸡汤轮播(学习累了笑一笑)




老师成了我的QA
有一天我突发奇想,把打包好的exe发给了班主任王老师。
我没期待什么反应——毕竟老师电脑上软件多了去了,谁会装一个学生做的工具?
结果她不仅装了,还认认真真用了几天,然后给我发了几条反馈:
"能不能把右下角那个文字框显示更多内容?"
"加个桌面便签功能?有时候记点东西比写黑板上方便"
"字体调一下,看着更舒服"
与班主任的聊天记录
我一口气全改了,打包再发过去。老师回了两个字:「真棒👍」
我截了个图,到现在还留着。
后来又陆陆续续改了:课程表课程卡住了不刷新、迷你时钟位置跑偏、通知弹了关不掉。每一个bug都是老师用的过程中发现的。那段时间版本号跳得飞快——v1.1 → v1.3 → v1.5 → v1.6。
学到的教训很朴素:自己测100遍不如让一个真实用户用1遍。

被同学"装进"了日用工具箱
后来这个软件在班里也传开了。有人专门设了早读提醒,有人在便签上写化学方程式,有人用它看下节是不是体育课。
最让我觉得"这个项目做对了"的一个瞬间——
有天路过隔壁班门口,听到一个人喊"还有三分钟上课了!快看桌面!"。
我知道,倒计时红了。
我突然意识到,我做的东西真的成了一个工具,在别人的电脑上运转着。一个初三学生写的代码,正在帮一群初三学生看时间。
这种感觉挺奇妙的。
技术含量(其实也没多高)
技术栈很朴实:Python tkinter + SQLite + 几个API(一言、心知天气、OIAPI)。
但在这个项目里我真正学会了几个事:
模块化是被逼出来的。 第一版一个文件能干完,v1.6.1已经有了config、schedule、notifications、stickynotes等十几个模块。1000行一个文件的代码,不改不结构化的唯一原因是——你还没写到让你崩溃的量。
产品不是你想出来的。 课程表、便签、通知、迷你时钟——没有一个是我的"原创创意"。全部来自同桌一句闲话、老师一条反馈、同学一个吐槽。听用户的话不是没主见,是做产品最有效的路。
开源是一种安全感。 代码放GitHub上,MIT协议。不会因为电脑坏了就丢了,别人也能拿去用、拿去改。万一中考后我没空维护,也希望这个工具还能帮到人。
中考完再继续
现在这个项目已经停了新功能开发,全力备战中考。但中考后会继续维护——新版本规划里至少还有:
- 多用户同步(你的课程表云端备份)
- 更漂亮的主题皮肤
- 学习数据统计看板
如果你也在读中学,而且刚好需要个东西管管自己的时间——不用自己写,我已经帮你写好了。

Comments NOTHING