实验预处理
该代码展示了一个名为
PrepStation 的类,用于实验的预处理和队列管理。详细代码分析:PrepStation 类及其相关组件
该代码展示了一个名为 PrepStation 的类,用于实验的预处理和队列管理。以下是对代码的详细分析,涵盖导入的模块、类的定义及其成员、注释和错误处理等方面。
PrepStation 类
PrepStation 类是该代码的核心部分,用于管理实验任务的预处理和队列操作。以下是对该类的详细分析:
初始化方法
__init__方法:- 初始化类实例,并设置初始状态或配置。
- 接受
browser、parent和title作为参数。 - 初始化各类成员变量,如
parent、browser、queue、expDict、qWidget、layout、buttonLayout、props、_task、paramDir、table和prepList。 - 调用
init_ui和init_table_actions方法来设置界面和表格操作。
初始化界面
init_ui方法:- 配置表格的垂直头,使其根据内容调整大小并隐藏。
- 创建各种按钮并设置其图标、工具提示和点击事件。
- 将按钮添加到布局中,并设置布局对齐方式。
初始化表格操作
init_table_actions方法:- 创建各种操作(如删除、休眠、推送、循环、编辑、查看和保存)并设置其快捷键和触发事件。
- 将这些操作添加到表格中。
设置模型
set_model方法:- 创建
PrepModel实例并设置为表格模型。 - 调整表格列的宽度。
- 创建
加载之前的任务
load_previous方法:- 从
prepfile.json文件中加载之前的任务列表,并打开相关的实验窗口。 - 更新
prepList。
- 从
任务操作方法
push方法:- 将选中的任务推送到队列中,如果没有选中任务,则推送第一个任务。
push_row方法:- 推送指定行的任务到队列中,并更新任务状态。
push_first方法:- 推送第一个任务到队列中。
delete_clicked方法:- 删除选中的任务,并更新任务文件。
set_sleeping方法:- 设置选中的任务为休眠状态。
push_to_looper方法:- 将选中的任务推送到循环器中。
move_up方法:- 上移选中的任务。
move_down方法:- 下移选中的任务。
update_prep_file方法:- 更新任务文件,将当前任务列表保存到
prepfile.json。
- 更新任务文件,将当前任务列表保存到
编辑和查看参数
open_editor方法:- 打开任务编辑器窗口以修改任务参数。
open_viewer方法:- 打开参数查看器窗口以查看任务参数。
save_params方法:- 将实验参数保存到 JSON 文件中。
其他类和辅助函数
ExpEditWindow类:- 用于编辑实验参数的窗口。
- 初始化方法
__init__和init_ui。 - 提交修改的方法
submit。
ParViewWindow类:- 用于查看实验参数的窗口。
- 初始化方法
__init__和init_ui。
CheckLayout类:- 包含复选框和参数输入框的布局。
- 初始化方法
__init__。
DisplayBox类:- 显示参数名称、值和单位的布局。
- 初始化方法
__init__和init_ui。
get_experiment函数:- 获取实验实例,如果实验窗口未打开则打开窗口。