Skip to content

Qwejay/QTimer

Repository files navigation

⏱️ QTimer V1.1.0 - 极简流线型桌面悬浮计时器

Python Version PyQt5 Platform High DPI Portable

QTimer 是一款专为说课、答辩、演讲、会议等场景打造的桌面悬浮倒计时工具。它采用极简的无边框半透明设计,平时安静地悬浮在屏幕角落,鼠标悬停时如丝滑拉开的抽屉般展示控制面板。


🆕 最新更新日志 (V1.1.0 核心升级)

  • 🪄 PPT 放映全自动计时 (智能防误触):引入底层 Windows API 探测器。当检测到 PowerPoint (PPT) 或 WPS 进入全屏放映模式的一瞬间,计时器将自动开始。严格锚定专属窗口类名,绝对不引发误触,演讲开场更加从容优雅。
  • ⏱️ 正计时 / 倒计时混合编排:除了传统的倒计时,现在支持在设置中为任意环节单独配置正计时模式。底层引擎依然保持无误差时间戳锚定,仅在 UI 层进行智能转换。
  • 🖥️ 窗口越界保护与置顶优化:新增“防止窗口移出屏幕”功能,无论怎么拖拽,悬浮窗都会被安全“锁”在桌面可视范围内;支持自由开启/关闭窗口置顶(Always on Top)。
  • 🔤 极致精简的无字模式:支持一键隐藏“环节名称”文字,悬浮窗会自动收缩多余空隙,化身为一个纯粹的数字时钟,最大程度减少对观众的视觉干扰。
  • ⚙️ 设置界面专业化重构:全面优化设置面板的交互文案,去除冗余描述与 Emoji,使用更加专业的表述;取消了环节名称的严苛字符限制(现支持长达 100 字符)。

✨ 核心特性

  • 🎯 无误差精准计时 (Drift-Free Engine)
    • 彻底抛弃传统的“累加扣减”计时法。底层采用绝对系统时间戳锚定技术,即使你的电脑瞬间卡顿或 UI 线程阻塞,倒计时也绝对不会产生哪怕 1 秒的误差。
  • 🎨 自适应防挤压 UI (Canvas Masking)
    • 首创的“底层画布隔离”机制确保文字与倒计时数字绝对不会发生重叠。配合 QPropertyAnimation 带来极致丝滑的折叠/展开动画。
  • 🔄 多环节无缝流转
    • 支持自定义多个流程(如:说课 5 分钟 ➔ 答辩 2 分钟)。可开启自动流转模式,倒计时结束自动无缝衔接下一个环节。
  • 🔔 多线程智能提醒
    • 原生系统音效:支持 Windows (winsound) 和 macOS (afplay),采用独立守护线程异步播放声音,绝对不卡主界面。支持全局声音一键总控。
    • 动态变色闪烁:可自定义时间节点(如剩余 30 秒变黄,剩余 10 秒变红并伴随最后 10 秒倒数滴答声)。
  • 🛡️ 焦点防抢夺与单例锁
    • 引入 Qt.WA_ShowWithoutActivating 属性,计时器变色闪烁时绝对处于静默状态,绝不打断您在 Word/PPT 中的打字流。
    • 工业级 QSharedMemory 单例锁,彻底阻止程序多开导致的悬浮条重叠。
  • 💾 原子化保存与便携模式 (Portable)
    • 配置默认保存在程序同级目录,方便打包放进 U 盘带走!具备权限智能降级功能,在 C 盘等无权限目录时自动降级保存至 User 目录,杜绝崩溃。
  • ⌨️ 快捷键支持
    • 支持自定义全局快捷键(播放/暂停、重置、上一环节、下一环节)。(注:受系统级安全限制,需鼠标点击激活面板时生效)

🚀 快速开始

1. 环境依赖

确保您的电脑已安装 Python 3.7 或更高版本。

安装必须的依赖库 PyQt5:

pip install PyQt5

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages