接入 Studio 控件与菜单构建模块

将界面构建从主窗口移出,保留现有业务回调与标定路径。验证结果和完整门禁限制见 docs/architecture/studio-window-refactor-plan.zh.md。
This commit is contained in:
ykcheungab
2026-10-19 10:14:58 +08:00
parent 22658dbfc1
commit d477a4d8b7
6 changed files with 189 additions and 260 deletions
+12 -9
View File
@@ -1,14 +1,14 @@
# Studio 软件架构
本文说明已接线的 S1 和 2026-10-19 准备但尚未接线的 S2;后续工作和验收由
本文说明已接线的 S1–S2;后续工作和验收由
[分步重构计划](studio-window-refactor-plan.zh.md) 维护。下方旧扫描图表保留为历史证据,
不能用其中的行数或“已完成”判断当前代码。
## 当前职责与数据流
`app_window.py::StudioMainWindow` 创建控件和控制器并连接信号。S1 批次从 3,181 行减至
3,052 行,这是当日指标;当前另有并行标定修改。窗口仍承担菜单、预览、标定交互、
分析配置和运行协调,尚未完成薄窗口目标。
`app_window.py::StudioMainWindow` 装配界面、控制器并连接信号。2026-10-19 的 S2 接线
从 3,070 行减至 2,894 行。窗口仍承担业务接线、预览、标定交互、分析配置和运行协调,
尚未完成薄窗口目标。
`status_presenter.py::StatusPresenter` 只持有工具栏,不持有窗口或会话控制器。
窗口在 GUI 线程收集一次性的 `RailState`,Presenter 负责 phase、来源、标定、有效性及
@@ -28,6 +28,8 @@ graph TD
P --> T[ToolbarWidget 状态轨]
W --> A[AcquirePresenter 实时呈现]
W --> V[FrameView 二维与共享深度范围]
W --> U[WindowUi 控件与布局]
W --> M[WindowMenus 菜单与快捷键]
```
会话状态仍属于 `SessionController`,录制状态仍属于 `RecordingCoordinator`。
@@ -40,15 +42,16 @@ graph TD
执行结果、环境及尚未验证范围记录在实施计划。状态转发暂留用于现有调用方,后续按职责迁移,
不增加新的全局状态容器或将剩余逻辑全部并入回放控制器。
## S2 准备模块,尚未接线
## S2 界面构建与接线
`ui/window_ui.py::WindowUi` 创建控件和布局,提供局部主题、文字更新;
`ui/window_menus.py::WindowMenus` 创建菜单、快捷键和勾选初值,不绑定业务回调。
当前运行图不包含这两个模块,主窗口仍使用原构建路径,标定读取和应用路径由并行任务维护。
窗口通过 `ui`、`menus` 使用它们,旧控件和 action 属性保留同一对象引用供控制器和工具访问。
独立检查由 `test_window_surfaces.py` 负责。接线时仍由窗口装配 FrameView、共享 domain latch、
曲线 store 和控制器信号;reset 文字及操作可用性保留原负责人。具体顺序见实施计划,
不能把独立模块测试通过等同于主窗口迁移完成。
窗口在控制器接线前装配 FrameView、共享 domain latch 和曲线 store;菜单初值先于业务
回调绑定。偏好保存、全局主题与语言、reset 文字、pause 状态和操作可用性仍由原负责人管理。
标定读取与应用路径保持原实现。`test_window_surfaces.py` 覆盖独立模块与主窗口接线;
布局、传感器切换和回放由现有集成测试覆盖,结果及验证限制见实施计划。
## 历史测量的适用范围