Python 电脑桌面——工作量监控大屏

开源地址:https://gitee.com/beautiful_corridors/niuma

Python 工作量监控大屏

基于 Python + PySide6 开发的实时工作量监控桌面应用,提供美观的大屏显示界面。

功能特性

📊 实时监控

  • 键盘输入统计: 实时统计按键次数,显示平均和峰值每分钟按键数
  • 鼠标移动追踪: 监控鼠标移动距离,自动转换为厘米单位
  • 应用使用时间: 追踪每个应用程序的使用时长和切换频率
  • 工作时长统计: 显示总工作时间和生产力指数

🎨 界面设计

  • 现代化UI: 采用 PySide6 实现的毛玻璃效果和渐变背景
  • 响应式布局: 自适应不同屏幕尺寸
  • 实时动画: 数据更新时的平滑过渡效果
  • 深色主题: 护眼的深色配色方案

⚡ 性能优化

  • 低资源占用: 高效的多线程数据采集
  • 实时更新: 1秒间隔的数据刷新
  • 跨平台支持: Windows、macOS、Linux

安装和运行

环境要求

  • Python 3.8+
  • pip

方法一:直接运行

```bash

克隆或下载代码

安装依赖

pip install -r requirements.txt

运行应用

python main.py

```

方法二:安装为包

```bash

安装

pip install -e .

运行

work-monitor

```

方法三:创建可执行文件

```bash

安装 PyInstaller

pip install pyinstaller

创建可执行文件

pyinstaller --onefile --windowed main.py

可执行文件在 dist/ 目录中

```

依赖说明

核心依赖

  • PySide6: Qt6 的 Python 绑定,用于 GUI 界面
  • pynput: 跨平台的键盘鼠标监控库
  • psutil: 系统和进程信息获取库

平台特定依赖

  • Windows: pywin32 (用于获取活动窗口)
  • macOS: PyObjC (可选,用于更好的窗口检测)
  • Linux: xdotool (可选,用于窗口检测)

平台兼容性

Windows

  • ✅ 完全支持所有功能
  • ✅ 自动检测活动窗口
  • ✅ 键盘鼠标监控

macOS

  • ✅ 支持基本功能
  • ⚠️ 需要授予辅助功能权限
  • ⚠️ 活动窗口检测可能需要额外设置

Linux

  • ✅ 支持基本功能
  • ⚠️ 需要安装 xdotool: `sudo apt-get install xdotool`
  • ⚠️ 某些桌面环境可能需要额外配置

使用说明

主界面功能

  1. 键盘监控卡片: 显示总按键数、平均速度、峰值速度
  2. 鼠标监控卡片: 显示移动距离、平均速度、总像素数
  3. 工作时长卡片: 显示工作时间、活跃应用数、生产力指数
  4. 应用排行榜: 按使用时长排序的应用列表

快捷键

  • F11: 切换全屏模式
  • F5: 手动刷新数据

控制按钮

  • 重置数据: 清空所有统计数据
  • 全屏: 切换全屏显示模式

权限设置

Windows

  • 通常无需额外设置
  • 某些杀毒软件可能需要添加信任

macOS

  1. 系统偏好设置 → 安全性与隐私 → 隐私
  2. 选择"辅助功能"
  3. 添加 Python 或终端应用到允许列表
  4. 重启应用

Linux

```bash

Ubuntu/Debian

sudo apt-get install xdotool

如果遇到权限问题,可能需要添加用户到 input 组

sudo usermod -a -G input $USER

```

开发和自定义

项目结构

```

work-monitor/

├── main.py # 主程序入口

├── monitor.py # 监控核心逻辑

├── ui_components.py # UI 组件

├── requirements.txt # 依赖列表

├── setup.py # 安装配置

└── README.md # 说明文档

```

自定义配置

修改监控间隔

在 `monitor.py` 中调整:

```python

应用监控间隔(秒)

time.sleep(1) # 默认1秒

界面更新间隔在 main.py

self.update_timer.start(1000) # 默认1000毫秒

```

自定义界面样式

在 `main.py` 中修改 QSS 样式:

```python

self.setStyleSheet("""

QMainWindow {

background: qlineargradient(x1:0, y1:0, x2:1, y2:1,

stop:0 #667eea, stop:1 #764ba2);

}

""")

```

添加新的监控指标
  1. 在 `monitor.py` 中添加数据收集逻辑
  2. 在 `main.py` 中添加显示组件
  3. 更新 `update_display` 方法

故障排除

常见问题

  1. ImportError: No module named 'PySide6'

    ```bash

    pip install PySide6

    ```

  2. 权限被拒绝 (macOS)

    • 检查系统偏好设置中的辅助功能权限
    • 重启终端和应用
  3. 鼠标/键盘监控不工作

    • 检查是否有其他程序占用输入设备
    • 尝试以管理员权限运行
  4. 应用检测不准确

    • Windows: 确保 pywin32 正确安装
    • Linux: 安装 xdotool
    • macOS: 检查权限设置
相关推荐
meilindehuzi_a1 小时前
从零理解并实现 RAG:用 LangChain.js 构建语义检索问答系统
开发语言·javascript·langchain
风流 少年1 小时前
Julia
开发语言·julia
江畔柳前堤2 小时前
GO01-Go 语言与主流编程语言深度对比
开发语言·人工智能·后端·微服务·云原生·golang·go
:-)2 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
GIS阵地3 小时前
QgsRasterDataProvider 完整详解(QGIS 3.40.13 C++)
开发语言·c++·qt·开源软件·qgis
yaoxin5211234 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
阿里嘎多学长4 小时前
2026-07-14 GitHub 热点项目精选
开发语言·程序员·github·代码托管
中微极客4 小时前
解锁LLM开发全栈能力:Python + LangChain + RAG 工程实战指南
人工智能·python·langchain
hhzz5 小时前
Barbershop:基于GAN和分割Mask的图像合成技术——从理论到实战全解析
图像处理·人工智能·python·深度学习·计算机视觉
charlie1145141915 小时前
Cinux: 为大内核铺路
开发语言·c++·操作系统·现代c++