PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系

在界面程序开发中,数据的展示主要包括表格、简单列表、树状列表以及纯文本等多种方式,在Qt中将界面表格、简单列表、树状列表称为“表项视图类(item view class)”,并提供了两种实现方式,一种叫item based,这些类名以widget结尾,如QListWidget等。另一种叫model based,这些类以view结尾,如QListView等,对应QtDesigner控件的Item Views(Model-Based)和Item Widgets(Item-Based)这两类控件。

这两类控件都可以实现界面的表项视图展示,二者之间存在关系和区别:
1、Item Views(Model-Based)类内的控件是Item Widgets(Item-Based)内对应控件的父类,如QTreeWidget是从QTreeView派生的;

2、Item Views(Model-Based)的对象进行数据操作相对比较复杂,但处理及展示大数据量时性能高,而Item Widgets的数据操作比较简单,但处理及展示大数据量时性能相对低;

3、Item Views类控件是MVC(Model、View、Controller)架构的一种简化,数据和展现及实现逻辑分开,数据在Model中存储和操作,View负责展现、界面操作及逻辑控制;Item Widgets则将数据、展现及控制合并在一起,开发中没有Item Views灵活,实际上Item Widgets就是在Item Views的基础上绑定了一个默认的存储并提供了相关方法。


老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython

老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

请大家多多支持,点赞、评论和加关注!谢谢!

原文地址:https://www.cnblogs.com/LaoYuanPython/p/11931721.html