实验参数管理器

该代码定义了一个用于管理和监控多个进程的图形用户界面(GUI)应用程序。

DefaultExp 类概述

DefaultExp 是一个实验类,包含所有设备的属性,并组织这些属性以便于管理和访问。

方法详解

build(self)
  • 功能
    • 设置实验的初始参数,如计数器。
    • 遍历设备数据库,加载设备并根据设备类型进行分组。
    • 处理属性的加载错误,并将设备分为显示和隐藏两类。
run(self)
  • 功能
    • 运行实验的主要逻辑(此处为空实现,作为模板)。

BasicManager 类概述

BasicManager 是一个基础管理类,用于创建和管理各种类型的参数小部件。

构造方法

  • 参数说明

    • props:属性对象,用于与属性数据库交互。
    • parent:父级小部件。
    • kwargs:其他参数,用于初始化属性。
  • 功能

    • 初始化基础属性,如单位、最大最小值、步长等。
    • 设置样式并调用 _initGUI 方法。

方法详解

_initGUI(self)
  • 功能
    • 初始化图形界面,创建布局和标签。
    • 如果存在工具提示,则设置工具提示。
    • 创建定时器,用于定期更新参数值。
updateSpin(self)
  • 功能
    • 占位方法,用于在子类中实现具体的更新逻辑。

IntManager 类概述

IntManager 继承自 BasicManager,用于管理整数类型的参数。

方法详解

initSpin(self)
  • 功能
    • 创建一个整数选择框 (QSpinBox)。
    • 从属性对象中获取初始值并设置到选择框中。
    • 连接选择框的值变化信号到 updateValue 方法。
updateValue(self, v)
  • 参数

    • v:新值。
  • 功能

    • 更新实验和属性对象中的参数值。
updateSpin(self)
  • 功能
    • 检查属性对象中的值是否有变化,如果有变化,则更新选择框中的值。

BoolManager 类概述

BoolManager 继承自 QCheckBox,用于管理布尔类型的参数。

方法详解

updateValue(self, val)
  • 参数

    • val:新值。
  • 功能

    • 更新实验和属性对象中的布尔值。
updateCheckbox(self)
  • 功能
    • 检查属性对象中的布尔值是否有变化,如果有变化,则更新复选框的状态。

FloatManager 类概述

FloatManager 继承自 IntManager,用于管理浮点数类型的参数。

方法详解

initSpin(self)
  • 功能
    • 创建一个浮点数选择框 (QDoubleSpinBox)。
    • 从属性对象中获取初始值并设置到选择框中。
    • 连接选择框的值变化信号到 updateValue 方法。

ComboManager 类概述

ComboManager 继承自 BasicManager,用于管理下拉列表类型的参数。

方法详解

initSpin(self)
  • 功能
    • 创建一个下拉列表 (QComboBox)。
    • 根据提供的字符串列表初始化下拉列表的选项。
    • 连接下拉列表的选项变化信号到 updateValue 方法。
updateValue(self, v)
  • 参数

    • v:新值。
  • 功能

    • 更新实验和属性对象中的选项值。

FrequencyManager 类概述

FrequencyManager 继承自 IntManager,用于管理频率类型的参数。

方法详解

initSpin(self)
  • 功能
    • 创建一个浮点数选择框 (QDoubleSpinBox),用于选择频率值。
    • 从属性对象中获取初始值并设置到选择框中。
    • 连接选择框的值变化信号到 updateValue 方法。

SimpleDefaults 类概述

SimpleDefaults 继承自 QFrame,用于显示和管理实验的默认参数。

构造方法

  • 功能
    • 初始化属性对象和实验对象。
    • 调用实验对象的 build 方法构建实验。
    • 创建和设置主布局。
    • 根据实验的分组创建相应的参数管理小部件,并添加到布局中。

主函数

main()

  • 功能
    • 创建应用程序实例。
    • 创建 SimpleDefaults 窗口并显示。
    • 启动应用程序的事件循环。

使用场景

  • 该代码主要用于科学实验和数据采集系统中,帮助管理和显示实验的各种参数。
  • 适用于需要频繁调整参数和查看参数变化的场景,如实验室研究和工业控制系统。