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: 检查权限设置
相关推荐
盛夏绽放32 分钟前
Python常用高阶函数全面解析:通俗易懂的指南
前端·windows·python
仟濹1 小时前
Python - 文件部分
python
一点.点1 小时前
李沐动手深度学习(pycharm中运行笔记)——10.多层感知机+从零实现+简介实现
人工智能·笔记·python·深度学习·pycharm
小黄人软件2 小时前
OpenSSL 与 C++ 搭建一个支持 TLS 1.3 的服务器
服务器·开发语言·c++
那雨倾城2 小时前
使用 OpenCV 实现哈哈镜效果
人工智能·python·opencv·计算机视觉
武昌库里写JAVA2 小时前
Vue3编译器:静态提升原理
java·开发语言·spring boot·学习·课程设计
日晞3 小时前
深浅拷贝?
开发语言·前端·javascript
蹦蹦跳跳真可爱5893 小时前
Python----循环神经网络(LSTM:长短期记忆网络)
人工智能·python·rnn·深度学习·神经网络·lstm
大模型铲屎官3 小时前
【深度学习-Day 16】梯度下降法 - 如何让模型自动变聪明?
开发语言·人工智能·pytorch·python·深度学习·llm·梯度下降
明月看潮生3 小时前
青少年编程与数学 02-020 C#程序设计基础 05课题、数据类型
开发语言·青少年编程·c#·编程与数学