实验预处理
该代码展示了一个名为
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
函数:- 获取实验实例,如果实验窗口未打开则打开窗口。