- 主界面 UI (Frontend):
CustomTkinter(提供现代、暗黑风格的流畅桌面体验)。 - 代理 UI 引擎 (Proxy Engine):
Gooey(作为生成目标 EXE 的底层 UI 框架)。 - 代码生成器 (Code Generator): Python 原生字符串模板 (F-strings /
string.Template)。 - 编译器 (Compiler):
PyInstaller(以-F -w模式静默调用)。 json_ingestor.py(参数解析器):- 在主界面新增一个 Textbox (多行文本框),用于接收用户粘贴的 JSON 字符串。
- 包含 JSON 校验逻辑,清洗并自动映射为界面上的动态参数列表。
本项目采用严格的 MVC (Model-View-Controller) 解耦架构,以便于 AI 辅助开发:
ui_manager.py(视图层):- 负责渲染主界面。
- 包含动态参数列表组件 (支持增删改查参数项)。
- 收集用户输入的所有配置数据 (JSON 格式)。
code_generator.py(逻辑层):- 接收 UI 传来的 JSON 数据。
- 注入预设的
launcher_template.py模板。 - 在系统的 Temp 目录下生成临时的
proxy_launcher.py源码文件。
build_engine.py(执行层):- 封装
subprocess模块。 - 在后台静默执行
pyinstaller -F -w temp/proxy_launcher.py。 - 捕获编译日志并实时回传给 UI 界面的进度条。
- 封装
在后续使用 Trae/Cursor 开发时,请严格遵守以下 Prompt (提示词) 规范:
- 分步构建: 不要让 AI 一次性写完整个项目。先要求:“编写
ui_manager.py的基础框架,包含路径选择和全局配置区”。 - 接口先行: 在让 AI 写生成器前,先定义好 UI 传递给生成器的数据结构 (Data Schema)。
- 防御性编程: 强制要求 AI 在
build_engine.py中加入异常捕获机制,处理 PyInstaller 可能缺失或权限不足的问题。
AI 提取的参数必须严格符合以下 JSON 数组格式,以便 APP 解析:
[
{
"name": "--url",
"widget": "TextField",
"help": "目标网址的详细说明",
"required": true,
"default": "https://"
},
{
"name": "--input_file",
"widget": "FileChooser",
"help": "请选择要处理的 Excel 文件",
"required": true,
"default": ""
}
]
(注:widget 支持的值包括:TextField, FileChooser, DirChooser, Dropdown)