使用Qt Model/View
2013-03-15 00:03
267 查看
目录(?)[+]
二预定义模型
三视图
三委托Delegate
1、利用 Qt 的模型 / 视图架构,我们可以只从模型中获取实际在视图中显示所需要的数据。这样在处理非常大的数据集的时候,可以更加快速,而不至于降低性能。通过把一个模型注册到两个或多个视图,就可以让用户使用不同的方式查看数据以及和数据交互。 Qt 对于多个视图会自动保持同步,从而使对一个视图的改变会影响到全部视图。
2、模型 / 视图架构的另外一个好处是:如果决定改变底层数据集的存储方式,只需要修改模型,而视图仍能够继续正常工作。
为了充分使用Qt 模型 / 视图的好处,我们不想再采取 Qt 以前版本中的项视图简便类 QListWidget、 QTableWidget、
QTreeWidget。它们需要读取要被设置到一个项视图窗口部件中的所有数据、使用项对象呈现数据元素并且回写数据源。
Qt4使用预定义模型 划线的是Qt4.7 中已经不再推介的 Model 类
Qt中视图类的继承关系如下图
Qt中委托的继承关系见下图
http://blog.csdn.net/xuhongwei0411/article/details/8107210
二预定义模型
三视图
三委托Delegate
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,QAbstractListModel或是QAbstractTableModel来定制。 |
(三)视图
Qt中视图类的继承关系如下图
(三)委托Delegate
Qt中委托的继承关系见下图http://blog.csdn.net/xuhongwei0411/article/details/8107210
相关文章推荐
- Qt Model/View 学习笔记 (二):为使用Models与views热身
- Qt Model/View 学习笔记 (二):为使用Models与views热身
- Qt Model/View 学习笔记 (二):为使用Models与views热身
- QT Model View Controller 使用和认识
- Qt:使用Model-View,动态的加载显示数据
- Qt中Qtableview的使用1(QSqlTableModel模型)
- Qt:使用Model-View,动态的加载显示数据
- Qt model和tableview的使用
- Qt model和tableview的使用
- Qt 之 使用 Model-View(模型视图框架)动态的加载显示数据
- Qt:使用Model-View,动态的加载显示数据
- Qt Model/View 学习笔记 (二):为使用Models与views热身
- qt4 Model/View编程:2 使用模式和视图
- Qt:Model/View架构的简单使用
- Qt Model/View 学习笔记 (一)
- Qt Model/View(转)
- QT开发(三十六)——Model/View框架
- QT开发(三十七)——Model/View官方文档
- QT:在QTableView中使用各种自定义委托
- 该篇博客是在《iOS高级开发——CollectionView的动态增删cell及模型重构》的基础上继续进行开发的。在之前那篇博客中,我们实现了动态的增删cell,并且使用了模型Model进行重构