四川卫生康复职业学校 — 假期倒计时日历 skill
> 一只会陪你、还能随时告诉你"还有几天放假"的黄色小牛。点击桌面它走过去,点它弹出假期倒计时面板。
> 整套引擎基于 PySide6,已在 Windows 跑通。
🎯 完整工作流
Phase 0:环境(一次性)
cd 四川卫生康复职业学校-假期倒计时日历skill
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt # PySide6 + Pillow + numpy
Phase 1:准备素材(可选)
- 默认已带黄色小牛素材(
assets/:base / walk_01~04 / jump_01 / icon)。 - 想换形象:把透明 PNG 按同名替换进
assets/(base.png为待机帧必需)。
Phase 2:运行
python run_pet.py
# 或:python pet_main.py
启动后:
- 🐂 小牛出现在桌面右下角(透明置顶)。
- 点击桌面任意空白处 → 小牛走过去并立刻停下(陪伴感)。
- 点击小牛(左键或右键) → 弹出「假期倒计时」面板:当前日期时间 + 七夕/周末/中秋/国庆倒计时。
- 拖动小牛可移动位置;系统托盘可退出。
Phase 3:关闭
- 右键小牛弹出的面板「×」或「退出桌宠」;或系统托盘图标右键「退出」。
📂 目录结构
四川卫生康复职业学校-假期倒计时日历skill/
├── SKILL.md ← 本文件(工作流 + 功能 + 陷阱)
├── README.md ← 30 秒上手 + 结构说明
├── requirements.txt ← PySide6 + Pillow + numpy
├── run_pet.py ← 启动器(加入 sys.path 后运行 pet_main)
├── pet_main.py ← 入口(faulthandler 崩溃捕获)
├── bull_countdown_pet.py ← 小牛逻辑(倒计时面板 + 桌面点击行走 + 气泡 + 托盘)
└── assets/ ← 黄色小牛帧素材
🧩 核心功能清单
| 功能 | 说明 |
|---|---|
| 假期倒计时面板 | 实时显示当前日期时间 + 七夕/周末/中秋/国庆倒计时(按紧急度配色:今天红/明天橙/7天内金) |
| 桌面点击行走 | 全局低级鼠标钩子捕获桌面左键,小牛走去该点并停下(64 位 argtypes 已修) |
| 点击切换面板 | 左键/右键点击小牛 → 显示或隐藏倒计时面板 |
| 对话气泡 | 粉色气泡,拖文件到身上会说"我只负责倒计时,不吃文件哦~" |
| 托盘 | 系统托盘图标,可显示/隐藏、退出 |
| 拖动 | 按住小牛可拖动到任意位置 |
⚠️ 关键陷阱(已修好,记录在代码内)
| 坑 | 现象 | 解决 |
|---|---|---|
| 64 位 ctypes 崩溃 | HWND 被 32 位截断,钩子段错误拖垮进程 | 显式声明 WindowFromPoint/SetWindowsHookExW 等 argtypes |
| pythonw 吞报错 | 静默退出难排查 | faulthandler + sys.excepthook 写日志到临时目录 |
| 倒计时不刷新 | 日期跨越不更新 | 面板每分钟 _refresh();打开时即时刷新 |
🔧 自定义参数速查(bull_countdown_pet.py)
_get_countdowns() # 改这里增删假期(name, date(年,月,日))
WEEKDAY_CN # 星期中文名
screen.height() - 250 # 初始位置:屏幕右下角
self._walk_speed = 5 # 行走速度(像素/帧)
📋 给评委/复用者说明
- 本 skill 为 Windows 专属。
- 资源与代码全部内联,可直接打包上传。
- 与「四川卫生康复职业学校—桌面文件回收skill」为同校两套相互独立的实用技能。