不同于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

最新文章

  1. Javascript数值转换(string,int,json)
  2. HTML实践发现(标签<pre>)
  3. Matlab最短路径问题记录
  4. jq的核心基础
  5. Hadoop HDFS文件常用操作及注意事项
  6. ubuntu 下的 ftp (gftp)
  7. latch:cache buffers chains的优化思路
  8. POJ 1564(HDU 1258 ZOJ 1711) Sum It Up(DFS)
  9. iOS中的 SB和XIB的前世今生
  10. Java Integer封装类的IntegerCache内部类
  11. 消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
  12. DropDownList按照Gridview获取数据获取到的是定义格式
  13. mycat配置文件备份
  14. uvm_pre_do
  15. Unity Remote远程调试
  16. iOS 抽取app中的图片图标资源
  17. 搭建Vue2+Vuex+Webpack+Pug(jade)+Stylus环境
  18. 用StringHelper.Split分解字符串
  19. Palindrome II
  20. jQuery UI的datepicker()与变更格式

热门文章

  1. 知识补充之Django缓存
  2. Spider_基础总结2_Request+Beautifulsoup解析HTML
  3. 线程安全的SimpleDateFormat
  4. Why use MSIX message signal interrupt
  5. spring中的事务有两种方式
  6. windows下命令行设置静态IP
  7. mysql之用户
  8. JVM(一)-JVM入门
  9. 如何个性化定制iview中的table样式
  10. python-网络安全编程第四天(数据库编程&网络编程)