实验浏览器
Quatm 主窗口:实验浏览、队列管理、多窗口 MDI 工作区。
概述
quatm/GUI/browser/main_window.py 提供 实验浏览器(Browser):Quatm 的主应用
窗口,基于 QMainWindow + QMdiArea 多文档界面。左侧文件选择器浏览实验脚本,
顶部停靠实验队列、准备台与循环器,中央 MDI 区内每个实验一个子窗口。
布局
┌─────────────┬───────────────────────────────┐
│ FileSelector │ QMdiArea(实验子窗口区) │
│ (实验文件树) │ ┌─────────────────────┐ │
│ │ │ ExperimentWindow │ │
├─────────────┤ └─────────────────────┘ │
│ 队列 / 准备台 │ │
│ / 循环器停靠 │ │
└─────────────┴───────────────────────────────┘
核心组件
| 组件 | 模块 | 描述 |
|---|---|---|
FileSelector | browser/file_selector.py | 实验目录树,双击打开实验/模拟窗口 |
ExperimentWindow | browser/experiment_window.py | 中央 MDI 中单个实验的控制面板 |
ExperimentQueue | experiment/experiment_queue.py | 表格化任务队列 |
ExperimentManager | experiment/experiment_manager.py | 从队列取任务并执行 |
PrepStation | experiment/prepstation.py | 任务发往队列前的暂存与编辑 |
Looper | looper/ui.py | 按测量结果条件循环运行一组任务 |
上述组件的细节见本目录的对应页面。
生命周期
init_ui/create_dock_widgets:按屏幕适配默认几何,创建 MDI 画布与两侧停靠 部件(左侧文件选择器;顶部队列/准备台/循环器)。open_experiment:打开实验窗口;已打开则从最小化恢复并置前。closeEvent:先保存主窗口几何与全部实验子窗口状态,再停止队列/循环等 worker 线程,最后交给基类完成关闭。moveEvent/resizeEvent:防抖保存几何,下次启动时恢复窗口位置与尺寸。
用法
from quatm.GUI.browser.main_window import Browser
browser = Browser()
browser.show()
实验浏览器是运行除 Helper 之外所有实验的界面,通常作为主进程由进程管理器启动。