feat(gui): 添加基于PySide6的图形界面

- 实现美观现代的GUI界面,包含开始/停止按钮、日志显示和进度条
- 添加系统托盘支持,关闭窗口时最小化到托盘
- 重定向日志输出到GUI界面,支持彩色日志显示
- 保留原有命令行功能,同时提供更友好的图形操作方式
This commit is contained in:
2026-03-06 16:26:07 +08:00
parent 8600c0f576
commit 41ff658e31
3 changed files with 608 additions and 4 deletions

View File

@@ -7,9 +7,11 @@
- 🎯 **智能区域检测**:使用灰度阈值 + 连续行判定算法自动识别内容区块div和空白间隔
- 📜 **自动滚动截屏**:根据内容高度自动计算滚动距离,连续截屏
- 🔤 **OCR文字识别**:支持 Umi-OCR 和自定义HTTP OCR服务
- 🖥️ **图形界面**美观的PySide6 GUI界面操作更简单
- ⌨️ **热键触发**:按 `Ctrl+F9` 快速启动
- 🖱️ **框选区域**:拖动鼠标选择截图区域
- 🛑 **智能停止**:检测到重复内容时自动停止
- 📱 **系统托盘**:最小化到托盘,不占用任务栏
## 适用场景
@@ -42,6 +44,7 @@ pip install -r requirements.txt
- mouse >= 0.7.1
- requests >= 2.31.0
- loguru >= 0.7.0
- pyside6 >= 6.5.0
### 3. 安装OCR引擎二选一
@@ -59,7 +62,22 @@ pip install -r requirements.txt
## 使用方法
### 启动程序
### 图形界面方式(推荐)
```bash
python gui.py
```
界面功能:
- **开始截屏**按钮启动截屏OCR流程
- **停止**按钮:手动停止当前任务
- **清空日志**按钮:清空日志显示区域
- **日志显示**:彩色日志输出,带时间戳
- **进度条**:显示当前任务进度
- **状态标签**:显示当前运行状态
- **系统托盘**:关闭窗口会最小化到托盘
### 命令行方式
```bash
python main.py
@@ -67,8 +85,10 @@ python main.py
### 操作流程
1. **等待热键**程序启动后会显示 `等待热键 Ctrl+F9 启动...`
2. **触发截屏**`Ctrl+F9`
1. **启动程序**运行 `python gui.py``python main.py`
2. **触发截屏**
- GUI方式点击「开始截屏」按钮
- 命令行:按 `Ctrl+F9`
3. **检查服务**程序会检查OCR服务是否运行
4. **框选区域**:按住鼠标左键拖动,选择要截图的区域
5. **自动处理**:程序会自动:
@@ -138,7 +158,8 @@ class Config:
```
long-screen-cut/
├── main.py # 主程序
├── main.py # 主程序(命令行版)
├── gui.py # 图形界面程序PySide6
├── umi_ocr_client.py # Umi-OCR HTTP客户端
├── ocr_server_example.py # OCR服务示例Flask
├── requirements.txt # Python依赖