博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(一) Qt Model/View 的简单说明
阅读量:4227 次
发布时间:2019-05-26

本文共 794 字,大约阅读时间需要 2 分钟。

(一)使用Qt Model/View的好处  

 

    1、利用 Qt 的模型 / 视图架构,我们可以只从模型中获取实际在视图中显示所需要的数据。这样在处理非常大的数据集的时候,可以更加快速,而不至于降低性能。通过把一个模型注册到两个或多个视图,就可以让用户使用不同的方式查看数据以及和数据交互。 Qt 对于多个视图会自动保持同步,从而使对一个视图的改变会影响到全部视图。

    2、模型 / 视图架构的另外一个好处是:如果决定改变底层数据集的存储方式,只需要修改模型,而视图仍能够继续正常工作。

 

  

(二)预定义模型 

 

 

 

 

     为了充分使用Qt 模型 / 视图的好处,我们不想再采取 Qt 以前版本中的项视图简便类 QListWidget、 QTableWidget、 QTreeWidget。它们需要读取要被设置到一个项视图窗口部件中的所有数据、使用项对象呈现数据元素并且回写数据源。

 

    Qt4使用预定义模型 划线的是Qt4.7 中已经不再推介的 Model 类

 

 

QStringListModel  

用于存储简单的字符串列表。

QStandardItemModel 

存储任意的分层次的数据,管理复杂的树型结构数据项,每项都可以包含任意数据。

QDirModel(最新版已经用QfileSystemModel代替这个类了)

封装本地文件系统

QSqlQueryModel

封装一个SQL数据集

QSqlTableModel

封装一个SQL表

QSqlRelationTableModel

利用外键封装一个SQL表

QSortFileterProxyModel

排序和/筛选另一个模型

假如这些标准Model不满足你的需要,你应该子类化QAbstractItemModel,或是QAbstractTableModel来定制。

 

 

 

(三)视图 

 

Qt中视图类的继承关系如下图

 

 

(三)委托Delegate

Qt中委托的继承关系见下图

转载地址:http://qqlmi.baihongyu.com/

你可能感兴趣的文章
第二十八节:隧道代理阿布云代理
查看>>
Reverse Linked List II
查看>>
Vue过滤器、生命周期函数和vue-resource
查看>>
Linux(Ubuntu)安装Swift和Swiftlint
查看>>
未来有价值的开发语言
查看>>
bzoj:3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛
查看>>
JavaWeb——HttpSession
查看>>
Eureka 服务中心
查看>>
Lucene 4.9索引txt文件
查看>>
《剑指Offer》面试题5-替换空格
查看>>
HDU 6091 - Rikka with Match
查看>>
Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易
查看>>
13个绚丽的Jquery 界面设计
查看>>
[转]VI命令详解
查看>>
js运动框架_包括图片的淡入淡出
查看>>
Ecshop 数据库操作方法getRow、getAll、getOne区别
查看>>
【KMP】OKR-Periods of Words
查看>>
JS 递归
查看>>
外网主机远程连接内网主机
查看>>
[NOIP模拟14]题解
查看>>