556 字
2 分钟
Windows 桌面桌宠开发记录 — Violina 日历助手
Windows 桌面桌宠开发记录
一个可拖动的桌面宠物 + 完整日历日程管理 + 语音提醒 + 农历节气 = Violina 桌宠助手
项目概述
基于 Python + tkinter + pywin32 开发的 Windows 桌面宠物应用,包含:
- 桌面宠物:透明背景、置顶显示、无边框、GIF 动画、鼠标拖动
- 日历弹窗:年/月/周/日四视图,含公历农历双显示、24 节气、法定节假日
- 日程管理:自由起止时间、跨日事件、周期重复、提前提醒、拖拽编辑
- 语音提醒:到点 TTS 语音播报,支持语速/音量调节
- 附加工具:单双周课程表、倒数日、公农历换算、语音创建、导入导出
技术栈
| 模块 | 技术 | 说明 |
|---|---|---|
| GUI | tkinter + Canvas | 透明背景、置顶、无边框 |
| 语音 | pywin32 → SAPI.SpVoice | 语速/音量可调 |
| 存储 | JSON 文件持久化 | schedules.json 统一存储 |
| 农历 | 查表法 (2020-2035) | 含 24 节气 + 法定假日 |
| 定时 | threading.Timer | 30 秒轮询 + 5 分钟前闪烁提醒 |
项目结构
desktop-pet/├── main.py # 入口├── pet_window.py # 主窗口 + 右键菜单├── storage.py # 统一数据层├── lunar_calendar.py # 农历 + 节气 + 节假日├── calendar_widget.py # 日历弹窗 (四视图)├── calendar_tools.py # 附加工具├── tts_engine.py # 语音引擎├── scheduler.py # 定时调度├── reminder.py # 提醒引擎├── schedule_ui.py # 旧版日程管理└── assets/ └── pet_default.gif # Violina 形象 (灰发小提琴女孩)日历四视图
- 年视图:3×4 月历网格,事件标记点
- 月视图:每格显示公历+农历+节气/节日,底部事件点
- 周视图:左侧 4:00-22:00 时间轴,日程色块可拖拽/拉伸
- 日视图:单日 0-23 时时间轴
- 列表视图:Treeview 表格显示全部日程
日程交互
| 操作 | 效果 |
|---|---|
| 空白处拖拽 | 选中时间范围 → 新建日程 |
| 拖拽色块 | 移动改时间,跨列改日期 |
| 拖拽底部把手 | 拉伸修改时长 |
| 右键色块 | 编辑 / 标记完成 / 删除 |
| 滚轮 | 切换周/日 |
附加工具
- 单双周课程表:管理交替周课程
- 倒数日:计算距目标天数
- 公农历换算:双向转换
- 语音创建:自然语言解析(如”明天下午3点开会2小时”)
- 导入导出:JSON 批量操作
使用方式
# 解压后运行python desktop-pet\main.py下载
点击下载桌面宠物完整包 (约 100KB)
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Windows 桌面桌宠开发记录 — Violina 日历助手
https://blog2-9oh.pages.dev/posts/desktop-pet-violina/ 部分信息可能已经过时
相关文章 智能推荐
1
将 DeepSeek 接入 Codex — 实践记录
技术 跟着B站视频把DeepSeek接入了Codex,记录一下。
2
我的第一篇博客
生活 这是我在 Zenith Jove 发布的第一篇博客。
3
Markdown Tutorial
Examples A simple example of a Markdown blog post.
4
Markdown Extended Features
Examples Read more about Markdown features in Mizuki
5
Simple Guides for Mizuki
Guides How to use this blog template.






