PyQt学习随笔:Model/View架构中的Delegate(委托)
2024-09-03 18:08:08
不同于MVC模式,Model/View设计并不包含用于处理与用户交互的完全独立的部件, 没有将用户交互部分完全分离。一般地,视图负责把模型数据显示给用户,以及处理用户的输入。但是,对于某些特殊要求(比如要求必须输入数字),则交予Delegate(委托)完成。
Delegate(委托)组件提供输入功能,同时也能渲染某些特殊数据项。Delegate(委托)就是供视图实现某种高级的编辑功能,在视图中提供输入功能,同时负责传递视图中的单个项。可以说Delegate(委托)是PyQt Model/View架构中用于进行数据输入的类,类似于MVC架构中的C。
Delegate渲染数据项,当某个数据项被编辑时,Delegate通过模型索引与Model直接进行交互, 从Delegate发射的信号被用于在编辑时通知Model和View关于当前编辑器的状态信息。
使用Delegate后,Model/View相关类可以被分成三组:Models,Views,Delegates,因此也被称为MVD架构,Model/View框架中,所有模型类具有共同的抽象基类QAbstractItemModel,所有视图类具有共同的抽象基类QAbstractItemView,所有委托类具有共同的抽象基类QabstractItemDelegate。只不过PyQt中使用的标准View控件提供了默认的Delegate实现,一般情况下不用关注。
博客地址:https://blog.csdn.net/LaoYuanPython
老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036
最新文章
- Javascript数值转换(string,int,json)
- HTML实践发现(标签<;pre>;)
- Matlab最短路径问题记录
- jq的核心基础
- Hadoop HDFS文件常用操作及注意事项
- ubuntu 下的 ftp (gftp)
- latch:cache buffers chains的优化思路
- POJ 1564(HDU 1258 ZOJ 1711) Sum It Up(DFS)
- iOS中的 SB和XIB的前世今生
- Java Integer封装类的IntegerCache内部类
- 消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
- DropDownList按照Gridview获取数据获取到的是定义格式
- mycat配置文件备份
- uvm_pre_do
- Unity Remote远程调试
- iOS 抽取app中的图片图标资源
- 搭建Vue2+Vuex+Webpack+Pug(jade)+Stylus环境
- 用StringHelper.Split分解字符串
- Palindrome II
- jQuery UI的datepicker()与变更格式