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: 检查权限设置
相关推荐
蹦蹦跳跳真可爱589几秒前
Python----大模型(大模型微调--BitFit、Prompt Tuning、P-tuning、Prefix-tuning、LORA)
人工智能·python·深度学习·自然语言处理·transformer
Monkey的自我迭代22 分钟前
决策树分类实战:从数据到模型优化
python·决策树·机器学习
DONG91325 分钟前
Python 中的可迭代、迭代器与生成器——从协议到实现再到最佳实践
开发语言·汇编·数据结构·python·算法·青少年编程·排序算法
golitter.33 分钟前
pytorch的 Size[3] 和 Size[3,1] 区别
人工智能·pytorch·python
R-G-B34 分钟前
【C++ 初级工程师面试--4】形参带默认值的函数,特点,效率,注意事项
开发语言·c++·形参带默认值的函数·形参默认值特点,效率,注意事项·形参默认值特点·形参默认值效率·形参默认值注意事项
Q_Q5110082851 小时前
python的驾校培训预约管理系统
开发语言·python·django·flask·node.js·php
ApeAssistant1 小时前
2025,Python连Oracle最新教程
python·oracle
Dxy12393102161 小时前
Python正则表达式使用指南:从基础到实战
开发语言·python·正则表达式
YLCHUP1 小时前
题解:P4447 [AHOI2018初中组] 分组
开发语言·数据结构·c++·经验分享·算法·贪心算法·抽象代数
R-G-B2 小时前
【05】大恒相机SDK C#开发 —— Winform中采集图像并显示
开发语言·c#·大恒相机sdk·winform中采集图像·winform中采集图像并显示