实验窗口
单实验控制窗口:动态参数网格、提交/扫描与参数持久化。
概述
quatm/GUI/browser/experiment_window.py 提供 实验窗口(ExperimentWindow):
每个实验脚本在浏览器 MDI 区对应一个由 ExperimentSubWindow 承载的控制窗口,按
实验声明的参数对象自动生成参数网格,负责提交队列/预备、扫描构建与 JSON 参数存取
。
组件
| 组件 | 说明 |
|---|---|
ExperimentSubWindow | 图形容器:保存窗口几何并把窗口钳制在可视区内 |
ExperimentWindow | 单实验控制面板:参数网格 + 提交/扫描/保存控件 |
SequenceEditor | 扫描序列对话框:逐维设定起止与步数生成 nD 扫描 |
关键方法(ExperimentWindow)
| 方法 | 说明 |
|---|---|
submit_to_queue | 把当前实验提交到实验队列执行(各提交入口的统一入口) |
submit_next | 以最高优先级提交,排在所有已有任务之前 |
submit_to_prepper | 提交到准备台(PrepStation)暂存 |
setup_scan | 按扫描定义构建扫描序列(参数值与随机运行顺序) |
setup_task_dict | 构造存入队列/准备台的任务字典 |
build_argument_dict | 由参数网格各控件取值生成完整参数字典 |
save_params / load_params | 参数存为 JSON(按日期/时间命名,可备份)与回载 |
adaptive_columns | 按窗口宽度自动重排参数网格列数(约每 200 px 增一列) |
edit_sequence | 打开扫描序列编辑窗口并应用新序列 |
用法
from quatm.GUI.browser.experiment_window import ExperimentWindow
# 通常由 Browser.open_experiment 打开;也可自行构造
win = ExperimentWindow(filepath=..., props=props, parent=subwindow, browser=browser)
实验脚本声明的参数对象(如 NumberValue / BoolValue / StringCombo)会自动生
成带标签、单位与范围的编辑控件;参数组可保存为 json 并在以后加载复用。