本文记录成品功能,以及我是怎么用「提示词」一步步把它做出来的。
1.展示
负责悬浮桌面,「默认:工作 30 分钟 + 休息 5 分钟」的节奏:
工作时间结束,钟里会飘起樱花花瓣提醒我该歇会儿;
休息结束自动回到工作,循环往复;
右键点一下就能暂停、跳过、重置、改设置;
还能开启「弹性结束」——偶尔工作超时也不慌,超出的时间会自动折算成额外休息。
用Python + PyQt5实现,打包成 exe 双击即用。
2.技术选型
| 对比项 | PyQt5(最终选) | Electron | 原生 Win API |
|---|---|---|---|
| 置顶悬浮 | WindowStaysOnTopHint一行搞定 | 需额外配置 | 繁琐 |
| 体积 | 中(约 80MB 打包后) | 大(约 150MB) | 小 |
| 开发难度 | 低 | 中(需写 JS) | 高 |
| 撒花动画 | QPainter粒子系统 | CSS 动画 | 需手写 |
| 跨平台 | 支持 | 支持 | 不支持 |
考虑到我用 Windows,PyQt5 最省事,撒花用QPainter画粒子,遮罩阴影用径向渐变手绘,避开了 Windows 分层窗口的兼容性坑。
怎么跑起来
# 方式一:直接运行(需先装 PyQt5)pipinstallPyQt5 python sakura_pomodoro.py# 方式二:打包成 exe# 双击 build.bat,生成 dist/SakuraPomodoro.exe,无需 Python 环境即可运行运行后桌面右上角(或你拖到的位置)会出现小圆钟,右键能暂停、跳过、设置、退出。
3.我与 AI 的互动复盘
简述一下整个过程中我和 AI 是怎么配合的,以及踩过哪些问题:
- 起步:我先抛整体目标(悬浮、30+5、撒花),让 AI 做技术选型,确认用 PyQt5。
- 出活:AI 直接写出主程序并自测、打包,我基本没碰代码。
- 问题 1(运行方式错):我把脚本粘进 PyCharm 的 Python Console 想跑,报错;AI 指出那是交互式 REPL,教我用 Terminal / 系统 cmd。
- 问题 2(计时与体验):我发现时间不走、又不想要全屏控屏;AI 重做一版,去掉遮罩、休息时间改成本地撒花。
- 问题 3(兼容性报错):运行后控制台狂刷
UpdateLayeredWindowIndirect failed;AI 定位是阴影特效冲突,改成手绘阴影解决。 - 问题 4(观感与功能):方角阴影不好看 → 改成真圆形窗口;想要超时弹性结束 → 加
+MM:SS与设置弹窗。
一句话总结:我只负责"说清楚要什么 + 贴报错截图",AI 负责把需求变成能跑的代码并修坑。
4.拿来即用的提示词
想复刻一个同款悬浮钟,把下面的提示词直接发给 AI 即可(时长、配色按需改):
帮我用 Python + PyQt5 做一个桌面悬浮番茄钟,要求: 1. 窗口永远置顶悬浮(WindowStaysOnTopHint),可拖动到任意位置; 2. 圆形窗口(用 setMask 裁成圆),圆环进度 + 中间数字倒计时 MM:SS; 3. 默认工作 30 分钟、休息 5 分钟,自动循环; 4. 休息时花瓣在钟体内部飘落(用 QPainter 画粒子,不要全屏遮罩); 5. 阴影用 paintEvent 手绘径向渐变(不要用 QGraphicsDropShadowEffect,Windows 上会报 UpdateLayeredWindowIndirect failed); 6. 右键菜单:暂停/继续、跳过、重置、设置、退出; 7. 设置弹窗可改学习/休息时长,并支持"弹性结束":工作到点不强制休息,继续计时显示 +MM:SS,点击结束按 超时×(休息/学习) 折算额外休息,累计今日总学习; 8. 配置存到脚本同目录的 pomodoro_config.json; 9. 给一份 build.bat 一键打包成 exe,并写 README 使用说明。5.已上传 Gitee,欢迎使用
我已经把项目上传到 Gitee(仓库地址:[悬浮番茄钟: 简易版电脑悬浮番茄钟,设计原因:方便自己电脑学习看时间]),欢迎 clone / star,也欢迎照提示词自己改一版。
下载:https://gitee.com/zero111888/floating-pomodoro-timer.git
上传到 Gitee 的文件清单:
| 文件 | 说明 |
|---|---|
sakura_pomodoro.py | 主程序,核心全部在这里 |
build.bat | 一键打包成 exe 的脚本 |
requirements.txt | 依赖清单(PyQt5) |
README.md | 使用说明 |
blog_sakura_pomodoro.md | 本文博客 |
images/ | 博客配图文件 |
项目文件:sakura_pomodoro.py(主程序)、build.bat(打包)、requirements.txt(依赖)、README.md(说明)。