将模型数据绑定到视图并更新视图的正确方法

2024-09-28 01:28:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python+Qt(PyQt5)已经有一段时间了,我想知道将模型结构(比如对象的List)绑定到视图表示(比如QListWidgets)的最有效(和正确)方法是什么,以便在修改前者(添加/删除/修改元素)时实现后者的安全高效更新。 我在考虑不同的策略,例如:

  • 子类化List对象以在模型中实现请求视图中更新的on_change方法
  • 使用实现上述功能的另一种结构类型
  • 每次处理模型数据更新时,只需硬调用视图更新

有什么建议吗?我想强调的是,“List[MyObject]QWidgetList”正是我目前正在研究的主题,但我的问题应该尽可能的笼统

编辑

多亏了@BrenBarn和@musicamante,我形成了一个ESS模型/视图体系结构,因此QAbstractListModel的继承有助于轻松处理QListView下面的结构数据。 唯一的缺点是,每次模型更新(插入/删除/编辑)时,都要手动发出QAbstractListModel.dataChanged信号


Tags: 数据对象方法模型视图元素编辑on

热门问题