revert: 恢复 tkinter app_gui.py, 改成 Web UI / 桌面 GUI 共存

## 用户反馈

上次 commit e826b1a "删除 tkinter, 完全切到 Web UI" 误解了用户意图。
用户原意是 "完全用 webUI, **用户可以选择**" → 指 Web UI 内部给用户
充分选择, 不是删 tkinter。

用户澄清: "我的意思是共存", 即两套 GUI 都保留, 用户按场景挑。

## 改动

### 恢复
- \`app_gui.py\` (939 行, 从 e826b1a^ restore, 含之前修的 --task bug fix)

### 保留 e826b1a 的合理部分 (不回滚)
- \`monitor_web.py\` 的 \`_start_monitor_if_ready\` 重构 (无 keys 仍能开
  Web UI) - 这个 standalone 改进, 跟 GUI 选哪个无关, 保留
- \`WeChatDecrypt.spec\` 入口 \`monitor_web.py\` (Web UI 体验更好, 默认
  打包它; 想打 tkinter exe 改 spec 那一行就行)
- \`build.bat\` 简化 (单一 source of truth = spec, 不重复 add-data 清单)

### README 改共存叙事
- Windows 快速开始拆 2 个 details:
  - "Web UI (推荐, 跨平台 + 实时监听)"
  - "桌面 GUI / EXE (tkinter, 适合不开浏览器的场景)"
- 文件清单 \`app_gui.py\` 那行回来, 说明跟 \`monitor_web.py\` 共存关系
- "GUI 工具箱" 章节重写: 先讲 Web UI 推荐路径 + 三 tab 能力, 再讲
  桌面 GUI 备用场景 (公司机器禁浏览器 / 全离线 / 喜欢传统桌面应用),
  最后讲打包 (默认 Web UI exe, 改 spec 可打 tkinter exe)

### EXE_USAGE.md 共存
- 结尾的 "为什么没 tkinter" 改成 "还有个 tkinter (备用)"
- 说明何时该用哪个 + 怎么打 tkinter 版 exe

## 实测

- app_gui.py syntax OK
- monitor_web.py syntax OK
- 测试 185/185 通过
This commit is contained in:
ylytdeng
2026-05-17 19:28:57 +08:00
parent e826b1a565
commit 9e38684bc6
3 changed files with 992 additions and 26 deletions

View File

@@ -88,14 +88,19 @@ wxwork_export/ ← 企微聊天导出
monitor_web 默认 bind `0.0.0.0`, 同局域网其他设备可以访问
`http://<你的本机 IP>:5678`。如需要只允许本机访问, 修改源码 `PORT` 那一行附近的 bind 地址改成 `127.0.0.1`
## 历史: 为什么没有 tkinter GUI
## 还有个 tkinter 桌面 GUI (备用, 共存)
旧版本 (commit b986413 ~ a01d326) 提供过 `app_gui.py` tkinter 桌面 GUI, 但:
如果你 **不想开浏览器** (公司机器禁浏览器 / 全离线场景), 可以用桌面 GUI:
- tkinter 在中文字体下渲染糊
- 90 年代 Windows 控件风格, 难看
- 只能跑 Windows, 不跨平台
```bash
python app_gui.py # → 弹 tkinter 窗口
```
跟 Web UI 功能基本对齐 (8 个按钮 / 导出对话框), 缺点:
- 中文字体下渲染较糊
- Windows-only (不跨平台)
- 没法远程访问
- 维护两套 UI (tkinter + Web) 代码重复
commit (这次) 起完全切到 Web UI: 浏览器渲染清晰、跨平台、远程可访问、跟实时监听共享一套 SSE 通道, 同时没有功能损失 (8 个工具按钮 + 模态框筛选 + 终止 + 状态都在 Web 上)。
单 exe **默认入口是 Web UI**。要打 tkinter 版的 exe, 改
`WeChatDecrypt.spec``Analysis(['monitor_web.py'])`
`Analysis(['app_gui.py'])``build.bat`