248 lines
5.0 KiB
Markdown
248 lines
5.0 KiB
Markdown
|
|
# CutThenThink GUI 快速入门指南
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
CutThenThink 是一个智能截图管理工具,提供截图、OCR识别、AI分析和云存储同步等功能。
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 1. 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 安装所有依赖
|
|||
|
|
pip install -r requirements.txt
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
主要依赖:
|
|||
|
|
- PyQt6==6.6.1 (GUI框架)
|
|||
|
|
- PyQt6-WebEngine==6.6.0 (Web引擎)
|
|||
|
|
- SQLAlchemy==2.0.25 (数据库)
|
|||
|
|
- paddleocr==2.7.0.3 (OCR识别)
|
|||
|
|
- openai>=1.0.0 (AI服务)
|
|||
|
|
- anthropic>=0.18.0 (AI服务)
|
|||
|
|
|
|||
|
|
### 2. 运行应用
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 方法1: 运行测试脚本
|
|||
|
|
python3 test_main_window.py
|
|||
|
|
|
|||
|
|
# 方法2: 直接导入使用
|
|||
|
|
python3 -c "
|
|||
|
|
from PyQt6.QtWidgets import QApplication
|
|||
|
|
from src.gui import get_main_window_class
|
|||
|
|
|
|||
|
|
app = QApplication([])
|
|||
|
|
MainWindow = get_main_window_class()
|
|||
|
|
window = MainWindow()
|
|||
|
|
window.show()
|
|||
|
|
app.exec()
|
|||
|
|
"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 基本功能
|
|||
|
|
|
|||
|
|
#### 主界面布局
|
|||
|
|
- **左侧**: 导航侧边栏
|
|||
|
|
- 📷 截图处理
|
|||
|
|
- 📁 分类浏览
|
|||
|
|
- ☁️ 批量上传
|
|||
|
|
- ⚙️ 设置
|
|||
|
|
|
|||
|
|
- **右侧**: 主内容区域
|
|||
|
|
- 根据侧边栏选择显示不同页面
|
|||
|
|
|
|||
|
|
#### 快捷键
|
|||
|
|
- `Ctrl+Shift+A`: 新建截图
|
|||
|
|
- `Ctrl+Shift+V`: 粘贴剪贴板图片
|
|||
|
|
- `Ctrl+Shift+O`: 导入图片
|
|||
|
|
|
|||
|
|
### 4. 使用颜色和样式
|
|||
|
|
|
|||
|
|
如果您想在其他地方使用相同的配色方案:
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from src.gui.styles import COLORS
|
|||
|
|
|
|||
|
|
# 使用颜色
|
|||
|
|
button_color = COLORS.accent_primary # #8B6914
|
|||
|
|
bg_color = COLORS.background_primary # #400000
|
|||
|
|
text_color = COLORS.text_primary # #2C2C2C
|
|||
|
|
|
|||
|
|
# 应用样式
|
|||
|
|
from src.gui.styles import ThemeStyles
|
|||
|
|
from PyQt6.QtWidgets import QPushButton
|
|||
|
|
|
|||
|
|
button = QPushButton("按钮")
|
|||
|
|
ThemeStyles.apply_style(button) # 应用完整主题
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
CutThenThink/
|
|||
|
|
├── src/
|
|||
|
|
│ ├── gui/ # GUI模块
|
|||
|
|
│ │ ├── main_window.py # 主窗口
|
|||
|
|
│ │ └── styles/ # 样式定义
|
|||
|
|
│ ├── config/ # 配置管理
|
|||
|
|
│ ├── core/ # 核心功能
|
|||
|
|
│ │ ├── ocr.py # OCR识别
|
|||
|
|
│ │ └── ai.py # AI分析
|
|||
|
|
│ ├── models/ # 数据模型
|
|||
|
|
│ └── utils/ # 工具函数
|
|||
|
|
├── data/ # 数据目录
|
|||
|
|
├── docs/ # 文档
|
|||
|
|
└── test_main_window.py # 测试脚本
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 主要模块
|
|||
|
|
|
|||
|
|
### 1. 主窗口 (`src.gui.main_window`)
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from src.gui import get_main_window_class
|
|||
|
|
|
|||
|
|
MainWindow = get_main_window_class()
|
|||
|
|
window = MainWindow()
|
|||
|
|
window.show()
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 样式系统 (`src.gui.styles`)
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from src.gui.styles import (
|
|||
|
|
COLORS, # 颜色方案
|
|||
|
|
ThemeStyles, # 主题样式
|
|||
|
|
ColorScheme, # 颜色方案类
|
|||
|
|
get_color, # 获取颜色
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 配置管理 (`src.config.settings`)
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from src.config.settings import get_settings
|
|||
|
|
|
|||
|
|
settings = get_settings()
|
|||
|
|
print(settings.ai.provider) # AI提供商
|
|||
|
|
print(settings.ui.theme) # 界面主题
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. OCR功能 (`src.core.ocr`)
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from src.core.ocr import OCRProcessor
|
|||
|
|
|
|||
|
|
processor = OCRProcessor()
|
|||
|
|
text = processor.process_image("path/to/image.png")
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5. AI分析 (`src.core.ai`)
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from src.core.ai import AIAnalyzer
|
|||
|
|
|
|||
|
|
analyzer = AIAnalyzer()
|
|||
|
|
result = analyzer.analyze_text(text)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置文件
|
|||
|
|
|
|||
|
|
配置文件位置: `~/.cutthenthink/config.yaml`
|
|||
|
|
|
|||
|
|
首次运行会自动创建默认配置:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
ai:
|
|||
|
|
provider: anthropic
|
|||
|
|
api_key: "" # 需要填入您的 API key
|
|||
|
|
model: claude-3-5-sonnet-20241022
|
|||
|
|
|
|||
|
|
ocr:
|
|||
|
|
mode: local
|
|||
|
|
use_gpu: false
|
|||
|
|
|
|||
|
|
ui:
|
|||
|
|
theme: light
|
|||
|
|
window_width: 1200
|
|||
|
|
window_height: 800
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### 1. PyQt6 未安装
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
pip install PyQt6==6.6.1 PyQt6-WebEngine==6.6.0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 导入错误
|
|||
|
|
|
|||
|
|
确保在项目根目录运行:
|
|||
|
|
```bash
|
|||
|
|
cd /path/to/CutThenThink
|
|||
|
|
python3 test_main_window.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 样式不生效
|
|||
|
|
|
|||
|
|
确保应用了主题:
|
|||
|
|
```python
|
|||
|
|
from src.gui.styles import ThemeStyles
|
|||
|
|
ThemeStyles.apply_style(your_widget)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 颜色显示不正确
|
|||
|
|
|
|||
|
|
检查颜色定义:
|
|||
|
|
```python
|
|||
|
|
from src.gui.styles import COLORS
|
|||
|
|
print(COLORS.accent_primary) # 应该输出: #8B6914
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 开发指南
|
|||
|
|
|
|||
|
|
### 修改颜色方案
|
|||
|
|
|
|||
|
|
编辑 `src/gui/styles/colors.py` 中的 `ColorScheme` 类:
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
@dataclass
|
|||
|
|
class ColorScheme:
|
|||
|
|
accent_primary: str = "#YOUR_COLOR"
|
|||
|
|
# ... 其他颜色
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 修改样式表
|
|||
|
|
|
|||
|
|
编辑 `src/gui/styles/theme.py` 中的 QSS 样式表。
|
|||
|
|
|
|||
|
|
### 添加新页面
|
|||
|
|
|
|||
|
|
1. 在 `main_window.py` 中添加页面创建方法
|
|||
|
|
2. 在 `_create_pages()` 中注册
|
|||
|
|
3. 在侧边栏添加导航按钮
|
|||
|
|
4. 在 `_on_nav_clicked()` 中添加切换逻辑
|
|||
|
|
|
|||
|
|
### 测试修改
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 运行测试脚本
|
|||
|
|
python3 test_main_window.py
|
|||
|
|
|
|||
|
|
# 或者使用 Python 直接导入
|
|||
|
|
python3 -c "from src.gui import get_main_window_class; print('OK')"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 下一步
|
|||
|
|
|
|||
|
|
- 阅读 `docs/gui_main_window.md` 了解主窗口详细设计
|
|||
|
|
- 阅读 `docs/p0_6_summary.md` 了解 P0-6 任务实现
|
|||
|
|
- 查看 `src/gui/styles/` 了解样式系统
|
|||
|
|
- 查看 `src/config/settings.py` 了解配置管理
|
|||
|
|
|
|||
|
|
## 技术支持
|
|||
|
|
|
|||
|
|
如有问题,请查看相关文档或联系开发团队。
|