数据模型
DictSyncModel/ListSyncModel:将 Python 字典/列表自动映射为 Qt 表格。
概述
quatm/GUI/widgets/models.py 提供把 Python 字典 / 列表映射为 Qt 表格模型的基类(源自 ARTIQ 的 models)。实验队列、准备台与循环器的表格界面均基于此构建。
核心类
| 类 | 说明 |
|---|---|
_SyncSubstruct | 包装底层容器的字典操作辅助:append/insert/pop 后触发刷新回调 |
DictSyncModel | 字典→表格模型基类:按 headers/dataNames 列映射 backing_store |
ListSyncModel | 列表→表格模型基类(底层为列表) |
ScheduleModel | 实验队列(ExperimentQueue)模型:任务按优先级再按任务号排序 |
PrepModel | 准备台 / 循环器模型:底层为列表,顺序可自由调整 |
用法
from quatm.GUI.widgets.models import DictSyncModel
model = DictSyncModel(
headers=["名称", "值", "单位"],
dataNames=["name", "value", "unit"],
init={"name": "param1", "value": 100, "unit": "µs"},
)
具体业务模型通过子类实现三个钩子定制行为:convert 把键/值/列转成单元格内容,sort_key 返回排序键,flags 决定各单元格可编辑等标志。