一个基于 Python + PySide6 的桌面日历挂件,支持农历、法定节假日标记、主题切换、备忘录与定时提醒,可驻留系统托盘后台运行。
- 无边框日历窗口:支持鼠标拖动与边缘缩放,界面简洁。
- 年月独立切换:可分别切换上/下一年、上/下一月,一键回到今天。
- 农历显示:公历转农历,覆盖 1900–2100 年,支持闰月与生肖。
- 法定节假日标记:休息日标红,调休上班日显示「班」,其余不放假节日正常显示。
- 主题切换:内置 5 套 VSCode 风格配色(含明暗),可持久化。
- 备忘录:支持多条备忘、定时提醒、日期详情查看。
- 系统托盘:关闭/最小化驻留后台,托盘菜单可恢复、置顶、彻底退出。
- 单实例保护:重复启动时自动唤醒已有窗口,不产生多实例。
python my_calendar.py依赖:PySide6(安装 pip install PySide6)。
| 文件 | 职责 |
|---|---|
my_calendar.py |
程序入口:单实例检测与 main |
config.py |
路径常量、QSettings、环境配置 |
lunar.py |
农历转换纯函数(1900–2100) |
themes.py |
5 套 VSCode 风格主题定义 |
holiday.py |
节假日下载 / 缓存 + 后台下载线程 |
festivals.py |
节日名 + get_day_extra_info 判断 |
memo.py |
备忘录存储读写 |
dialogs.py |
备忘录编辑、日期详情两个对话框 |
main_window.py |
CalendarWindow 主窗口 |
依赖方向:config → lunar / themes → holiday → festivals → memo → dialogs → main_window → my_calendar(入口),无循环导入。
程序运行时会在同级目录自动生成以下文件:
calendar_memo.json:备忘录数据。holiday_cache.json:已下载的节假日缓存(离线可用)。
- 切换年月:点击导航栏两侧的 ◀ / ▶ 按钮;「今天」按钮快速回到当天。
- 切换主题:点击左上角「主题」按钮。
- 查看/编辑日期:点击任意日期格子,可查看农历、节日并编辑备忘录。
- 后台驻留:点击 ✕ 或 Alt+F4 默认隐藏到托盘;托盘右键菜单「完全退出程序」才真正结束进程。
- 关闭行为设置:托盘菜单「关闭时最小化到托盘」可切换点击 ✕ 后的行为。