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: 检查权限设置
相关推荐
开心香辣派小星8 小时前
23种设计模式-18观察者(Observer)模式
java·开发语言·设计模式
San30.8 小时前
从 Mobile First 到 AI First:用 Python 和大模型让数据库“开口说话”
数据库·人工智能·python
Slow菜鸟8 小时前
Java项目基础架构(一)| 工程架构选型指南
java·开发语言·架构
计算机学姐8 小时前
基于Python的旅游数据分析及可视化系统【2026最新】
vue.js·python·数据挖掘·数据分析·django·旅游·推荐算法
CoderYanger8 小时前
动态规划算法-斐波那契数列模型:1.第N个泰波那契数
开发语言·算法·leetcode·动态规划·1024程序员节
红队it8 小时前
【机器学习】python旅游数据分析可视化协同过滤算法推荐系统(完整系统源码+数据库+开发笔记+详细部署教程)✅
python·mysql·算法·机器学习·数据分析·旅游
曲幽8 小时前
Flask项目结构详解:用蓝图实现优雅的模块化开发
python·web·route·blueprint·register
zore_c8 小时前
【C语言】文件操作详解2(文件的顺序读写操作)
android·c语言·开发语言·数据结构·笔记·算法·缓存
weixin_421133418 小时前
PyInstaller& Nuitka & 项目 (如 django)
后端·python·django
weixin_462446238 小时前
使用 Python + Tkinter + openpyxl 实现 Excel 文本化转换
开发语言·python·excel