实验预处理

该代码展示了一个名为 PrepStation 的类,用于实验的预处理和队列管理。

详细代码分析:PrepStation 类及其相关组件

该代码展示了一个名为 PrepStation 的类,用于实验的预处理和队列管理。以下是对代码的详细分析,涵盖导入的模块、类的定义及其成员、注释和错误处理等方面。

PrepStation 类

PrepStation 类是该代码的核心部分,用于管理实验任务的预处理和队列操作。以下是对该类的详细分析:

初始化方法
  • __init__ 方法
    • 初始化类实例,并设置初始状态或配置。
    • 接受 browserparenttitle 作为参数。
    • 初始化各类成员变量,如 parentbrowserqueueexpDictqWidgetlayoutbuttonLayoutprops_taskparamDirtableprepList
    • 调用 init_uiinit_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 函数

    • 获取实验实例,如果实验窗口未打开则打开窗口。