# DeskTopTime **Repository Path**: kimstack/DeskTopTime ## Basic Information - **Project Name**: DeskTopTime - **Description**: 使用Qt6完成一个简易的桌面时钟+音频响应显示软件; 受 Wallpaper Engineer 中 的动态壁纸启发, 由于 Wallpaper 太过消耗性能 让桌面动起来只需要有时间跳动和动态音频条即可,因此开发此程序; 此程序为100% AI开发,人工编码几乎为零. - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeskTopTime - 桌面时间显示工具 一个功能丰富的Qt桌面时间显示应用程序,支持多屏幕、自定义格式、音频可视化和炫酷的霓虹灯效果。 ![License](https://img.shields.io/badge/license-GPLv3-blue.svg) ![Qt](https://img.shields.io/badge/Qt-6.8+-green.svg) ![Platform](https://img.shields.io/badge/platform-Windows-lightgrey.svg) ## ✨ 功能特性 ### 🕐 时间和日期显示 - **多格式支持**:自定义时间和日期显示格式 - **多字体配置**:独立设置时间和日期的字体、大小、颜色 - **多屏幕支持**:可在多个显示器上同时显示 - **精确定位**:支持屏幕百分比定位,自动适应不同分辨率 - **透明度调节**:0-100%透明度可调 ### 🌈 霓虹灯/体积光效果 - **边缘光晕**:均匀环绕文字的360°光晕效果 - **双色模式**:深色阴影(黑色)或浅色阴影(白色) - **透明度控制**:精确调节光晕强度(0-100%) - **智能适配**:根据字体大小自动调整光晕宽度 - **多层渲染**:三层渐变光晕,模拟真实光源散射 ### 🎵 音频可视化 - **实时频谱分析**:基于WASAPI的音频捕获技术 - **彩虹呼吸效果**:动态HSV色相循环,可调节呼吸速度 - **双模式渲染**:单色渐变或彩虹渐变可选 - **自定义样式**:柱状条数量、宽度、间距、颜色均可配置 - **智能设备切换**:自动检测并切换到默认音频设备(支持蓝牙耳机) - **故障恢复**:音频捕获失败时自动重新初始化 ### ⚙️ 配置管理 - **图形化配置界面**:直观的设置窗口 - **实时预览**:修改配置后立即生效 - **持久化存储**:所有配置自动保存和加载 - **灵活布局**:滚动式设计,支持大量配置项 ## 🖼️ 截图展示 ### 主界面效果 ![界面截图](./img/使用截图-v1.1.png) ### CPU占用率 ![音频可视化](./img/CPU_Using.png) ### 配置界面 - 时间和日期格式设置 - 字体、颜色、位置配置 - 文本阴影/光晕效果开关 - 音频可视化参数调节 - 彩虹呼吸效果控制 ## 🚀 快速开始 ### 系统要求 - **操作系统**:Windows 7/8/10/11 - **Qt版本**:Qt 6.8.3 或更高版本 - **编译器**:MSVC 2019+ 或 MinGW 13.10+ - **音频API**:WASAPI(Windows Vista及以上) ### 编译步骤 1. **克隆仓库** ```bash git clone https://gitee.com/kimstack/DeskTopTime.git cd DeskTopTime ``` 2. **打开项目** - 使用 Qt Creator 打开 `DeskTopTime.pro` - 或使用命令行: ```bash qmake DeskTopTime.pro make # 或 nmake (MSVC) / mingw32-make (MinGW) ``` 3. **运行程序** ```bash ./release/DeskTopTime.exe ``` ### 依赖库 - Qt Core - Qt GUI - Qt Widgets - Windows SDK(用于WASAPI音频捕获) ## 📖 使用说明 ### 基本操作 1. **启动程序** - 程序启动后会自动在系统托盘创建图标 - 时间和日期默认显示在屏幕中央上方 2. **打开配置窗口** - 右键点击系统托盘图标 - 选择"配置"菜单项 3. **配置时间和日期** - **格式设置**:使用Qt时间格式字符串 - 时间:`hh:mm:ss`、`HH:mm`、`hh:mm:ss AP` 等 - 日期:`yyyy-MM-dd`、`MM/dd/yyyy`、`dddd, MMMM d` 等 - **字体设置**:点击"选择字体"按钮 - **颜色设置**:点击颜色按钮选择 - **位置调整**:使用百分比滑块(0-100%) 4. **启用霓虹灯效果** - 勾选"启用文本阴影" - 选择"深色阴影"或"浅色阴影" - 调整"阴影透明度"滑块(推荐40-60%) 5. **配置音频可视化** - 勾选"启用音频可视化" - 调整柱状条数量(10-100) - 设置柱状条宽度、间距、颜色 - 开启"彩虹呼吸效果"获得动态色彩 - 调整"呼吸速度"(1-50) ### 高级功能 #### 多屏幕配置 - 在"屏幕选择"组中勾选需要显示的屏幕 - 每个屏幕独立显示相同的时间和日期 - 适用于多显示器工作环境 #### 音频设备切换 - 程序自动检测默认音频设备变化 - 连接蓝牙耳机后约3秒自动切换 - 无需手动干预,无缝过渡 #### 配置持久化 - 所有设置在关闭程序时自动保存 - 下次启动时自动加载上次配置 - 配置文件位置:`%APPDATA%\DeskTopTime\TimeClock.ini` ## 🎨 配置示例 ### 推荐配置组合 #### 1. 简约风格 ``` 时间格式:HH:mm 日期格式:yyyy-MM-dd 字体:Arial, 24pt / 14pt 颜色:白色 (#FFFFFF) 透明度:80% 阴影:关闭 音频可视化:关闭 ``` #### 2. 霓虹赛博风格 ``` 时间格式:hh:mm:ss AP 日期格式:MMMM d, yyyy 字体:Orbitron, 32pt / 18pt 颜色:青色 (#00FFFF) 透明度:90% 阴影:浅色,60% 音频可视化:开启 - 柱状条:50个,宽度6px,间距3px - 彩虹呼吸:开启,速度25 ``` #### 3. 专业办公风格 ``` 时间格式:HH:mm:ss 日期格式:yyyy年MM月dd日 dddd 字体:微软雅黑, 20pt / 12pt 颜色:深灰 (#333333) 透明度:70% 阴影:深色,40% 音频可视化:关闭 ``` ### 时间格式参考 | 格式符 | 说明 | 示例 | |--------|------|------| | h | 小时(12小时制,无前导零) | 1-12 | | H | 小时(24小时制,无前导零) | 0-23 | | hh | 小时(12小时制,有前导零) | 01-12 | | HH | 小时(24小时制,有前导零) | 00-23 | | m | 分钟(无前导零) | 0-59 | | mm | 分钟(有前导零) | 00-59 | | s | 秒(无前导零) | 0-59 | | ss | 秒(有前导零) | 00-59 | | AP | AM/PM | AM/PM | | ap | am/pm | am/pm | ### 日期格式参考 | 格式符 | 说明 | 示例 | |--------|------|------| | d | 日(无前导零) | 1-31 | | dd | 日(有前导零) | 01-31 | | M | 月(无前导零) | 1-12 | | MM | 月(有前导零) | 01-12 | | MMM | 月份缩写 | Jan-Dec | | MMMM | 月份全称 | January-December | | yy | 年份(两位) | 00-99 | | yyyy | 年份(四位) | 2024 | | ddd | 星期缩写 | Mon-Sun | | dddd | 星期全称 | Monday-Sunday | ## 🔧 技术架构 ### 核心模块 ``` DeskTopTime/ ├── main.cpp # 程序入口 ├── systemtrayicon.* # 系统托盘管理 ├── timeclock.* # 时间显示组件 ├── audiovisualizer.* # 音频可视化组件 ├── configwindow.* # 配置窗口 └── DeskTopTime.pro # Qt项目文件 ``` ### 关键技术 1. **WASAPI音频捕获** - 使用Windows Audio Session API - LOOPBACK模式捕获系统音频 - 支持动态设备切换 2. **QPainterPath渲染** - 文字转矢量路径 - 多层描边实现光晕效果 - 抗锯齿平滑渲染 3. **HSV色彩空间** - 彩虹效果的色相循环 - 动态颜色计算 - 平滑过渡动画 4. **配置管理** - QSettings持久化存储 - 信号槽机制实时更新 - 模块化设计易于扩展 ## 🐛 常见问题 ### Q1: 音频可视化没有响应? **A:** 检查以下几点: - 确认系统有音频播放 - 检查Windows声音设置中的默认设备 - 尝试重启程序 - 查看调试输出是否有错误信息 ### Q2: 蓝牙耳机无法识别? **A:** 程序会自动检测,但需要约3秒延迟。如果长时间无响应: - 确认蓝牙耳机已设为默认设备 - 检查蓝牙连接是否稳定 - 查看控制台输出的设备切换信息 ### Q3: 文字显示不完整? **A:** 这已在最新版本中修复。如果仍有问题: - 尝试减小字体大小 - 关闭霓虹灯效果测试 - 调整窗口位置百分比 ### Q4: 配置不保存? **A:** 检查以下权限: - 确保有写入 `%APPDATA%` 目录的权限 - 不要以管理员身份运行(可能导致路径变化) - 查看是否有防病毒软件阻止 ### Q5: 多屏幕显示异常? **A:** 确保: - 所有屏幕已正确识别 - 在配置中勾选了对应的屏幕 - 显卡驱动已更新到最新版本 ## 📝 开发计划 ### 已完成 ✅ - [x] 基础时间显示 - [x] 多屏幕支持 - [x] 自定义格式和样式 - [x] 霓虹灯/体积光效果 - [x] 音频可视化 - [x] 彩虹呼吸效果 - [x] 蓝牙耳机支持 - [x] 配置持久化 ### 待开发 🚧 - [ ] 闹钟提醒功能 - [ ] 番茄钟计时器 - [ ] 天气信息显示 - [ ] 主题预设保存/加载 - [ ] 键盘快捷键支持 - [ ] 更多可视化样式(波形、圆形频谱等) - [ ] Linux/macOS支持 ## 🤝 贡献指南 欢迎提交Issue和Pull Request! 1. Fork本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启Pull Request ## 📄 许可证 本项目采用 GPLv3 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 🙏 致谢 - [Qt Framework](https://www.qt.io/) - 跨平台应用框架 - [Windows WASAPI](https://docs.microsoft.com/en-us/windows/win32/coreaudio/wasapi) - Windows音频会话API - 所有贡献者和用户反馈 ## 📧 联系方式 - 项目主页:[Gitee Repository](https://gitee.com/kimstack/DeskTopTime) - 问题反馈:[Issues](https://gitee.com/kimstack/DeskTopTime/issues) --- **Made with ❤️ using Qt**