python - 将模型数据绑定到视图并更新后者的正确方法
问题描述
我正在使用 Python+Qt (PyQt5) 一段时间,我想知道将模型结构(比如说List
对象)绑定到视图表示(比如说QListWidgets
)的最有效(和正确)方法是什么当前者被修改(添加/删除/修改元素)时,实现后者的安全高效更新。我正在考虑不同的策略,例如:
- 子类化
List
对象以on_change
在模型中实现请求视图中更新的方法 - 使用实现上述的另一种结构
- 每次我处理模型数据更新时,只需硬调用视图更新
有什么建议吗?我想强调“ List[MyObject]
vs. QWidgetList
”只是我目前正在研究的主题,但我的问题应该尽可能笼统。
编辑
感谢@BrenBarn 和@musicamante,我来到了英亩的模型/视图架构,因此QAbstractListModel的继承有助于轻松处理QListView
. 唯一的缺点是每次更新模型(插入/删除/编辑)时,QAbstractListModel.dataChanged
都要手动发射信号
解决方案
推荐阅读
- asp.net-mvc - Ionic post API 错误未经授权
- c++ - 使用简单的蛮力算法找到数组的 4 个最大元素
- javascript - 使用 Jquery 命名 JSON 数组
- node.js - 我应该如何为我的 AWS 无服务器应用程序迁移(更新数据库架构)我的数据库
- angular - Angular2:将 *ngFor 项的字段作为参数放入函数调用中
- javascript - 如何在 reactjs 中使用从 API 获取的数据的 highcharts
- c# - 调用 ApiController 方法时找不到资源
- javascript - Laravel javascript 需要完美的滚动条
- twisted - buildbot http 服务器接口到 0.0.0.0
- jquery - 在jQuery中将多个数据附加到FormData的最有效方法