Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@ cd mistralOCR
pip install -r requirements.txt
```

3. macOS上安装Tkinter(@后的版本号须与虚拟环境版本一致):
```
brew install python-tk@3.11
```


## 使用方法

### 图形界面
Expand Down
46 changes: 32 additions & 14 deletions src/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
GUI模块,提供图形用户界面功能
"""
import tkinter as tk
import traceback
from tkinter import ttk, filedialog, messagebox
from pathlib import Path
import os
Expand Down Expand Up @@ -69,22 +70,39 @@ def _load_saved_config(self) -> None:
"""加载保存的配置"""
api_key = self.config.get('api_key', '')
self.api_key_var.set(api_key)

def _select_file(self) -> None:
"""选择要处理的文件"""
filetypes = [
("所有支持的文件", "*.pdf;*.jpg;*.jpeg;*.png"),
("PDF文件", "*.pdf"),
("图片文件", "*.jpg;*.jpeg;*.png"),
("所有文件", "*.*")
]
filename = filedialog.askopenfilename(
title="选择文件",
filetypes=filetypes
)
if filename:
self.file_path_var.set(filename)

try:
# 明确指定每个文件类型的独立元组
filetypes = [
("PDF Documents", "*.pdf"),
("JPEG Images", "*.jpg"),
("JPEG Images", "*.jpeg"),
("PNG Images", "*.png"),
("All Files", "*")
]

# 添加防御性空值检查
initialdir = os.path.expanduser("~/Documents") if Path("~/Documents").exists() else None

filename = filedialog.askopenfilename(
title="选择文件",
filetypes=filetypes,
defaultextension=".pdf",
initialdir=initialdir
)

if filename:
self.file_path_var.set(filename)

except Exception as e:
self.status_var.set("文件选择失败")
error_msg = f"无法选择文件: {str(e)}"
self._update_result_text(error_msg)
messagebox.showerror("文件错误", error_msg)
print(f"DEBUG - 文件对话框错误: {traceback.format_exc()}")

def _update_result_text(self, text: str) -> None:
"""
更新结果显示区域的文本
Expand Down