# countdown-widget **Repository Path**: tinytaro/countdown-widget ## Basic Information - **Project Name**: countdown-widget - **Description**: 桌面置顶倒计时工具,基于 ICS 日历文件驱动(Qt6/C++) - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-11-03 - **Last Updated**: 2026-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CountdownWidget 桌面置顶倒计时 基于 iCalendar 日历文件的 Windows 桌面置顶倒计时工具。课表、会议、考试等日程从 .ics 文件读取,悬浮窗常驻桌面最上层,事件开始与结束时自动发送系统通知。 ## 功能 - 置顶半透明悬浮窗,不占任务栏 - 鼠标穿透锁定,倒计时存在但不影响其他程序操作 - 解析 iCalendar 事件,支持 RRULE 周重复、EXDATE 例外、TZID 时区与 DURATION - 全天事件与跨天事件自动过滤,只显示当天计划 - 事件开始与结束时发送系统托盘通知 - 标题与时间的字体、字号、颜色、背景透明度全部可配置,设置内实时预览 - 配置 JSON 持久化,日历文件改动自动重载 - 开机自启动、单实例运行 ## 构建环境 - Qt 6.12.0,msvc2022_64 套件 - CMake 3.21 以上 - Visual Studio 2022,含 C++ 桌面开发组件 ## 构建 ```powershell cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_PREFIX_PATH=D:\Qt\6.12.0\msvc2022_64 cmake --build build --config Release ``` 构建产物位于 `build\Release\CountdownWidget.exe`,可直接运行。对外发布时用 windeployqt 部署依赖 DLL,或直接使用仓库外的完整 dist 目录。 ## 使用 1. 首次启动后,托盘图标右键 → 设置,选择 .ics 日历文件,飞书、Outlook 等日历应用均可导出 2. 未指定日历文件时,程序自动加载 exe 同目录下的 .ics 文件 3. 左键托盘图标可显示或隐藏倒计时窗口 4. 打开设置对话框时自动解除锁定,可拖动窗口调整位置,关闭设置后自动恢复鼠标穿透 5. Esc 隐藏窗口,程序常驻托盘 显示规则: | 事件状态 | 显示 | |---|---| | 今天正在进行 | 事件名 · 距结束 | | 今天稍后开始 | 距事件名开始 | | 全天、跨天、明天及以后 | 不显示 | ## 许可证 本项目基于 [GPL-3.0](LICENSE) 发布。 本程序使用 Qt 6.12.0 动态链接构建。Qt 版权归 The Qt Company 所有,遵循 GNU LGPL v3 授权,你可以从 https://www.qt.io 获取 Qt 的源码,分发包中的 Qt DLL 均未修改。 Copyright (C) 2026 刘煜