目录:
(一) Qt Model/View 的简单说明 、预定义模型
(二)使用预定义模型 QstringListModel例子
(三)使用预定义模型QDirModel的例子
(四)Qt实现自定义模型基于QAbstractTableModel
(五)Qt实现自定义模型基于QAbstractItemModel
(六) Qt实现自定义委托 QDelegate
(一)使用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,QAbstractListModel或是QAbstractTableModel来定制。
|
|
(三)视图
Qt中视图类的继承关系如下图
(三)委托Delegate
Qt中委托的继承关系见下图
分享到:
相关推荐
Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的 功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的 数据源可以被...
Qt 文档中 Model/View 部分的翻译。 由清源游民完成。 gameogre@gmail.com
详细的讲述了QT model view framework的具体内容,中文容易理解和掌握,可以结合qt assistant英文文档一起看
按官方文档实现QT Model/View 编程,Qt包含一组项视图类,这些类使用模型/视图体系结构来管理数据和数据呈现给用户的方式之间的关系。该体系结构引入的功能分离为开发人员提供了更大的灵活性来定制项的表示,并提供...
QT Model/View结构学习
Qt使用Model/View结构来处理这种关系,Model/View的基本结构如图 数据模型 所有的基于项数据(ItemData)的数据模型(Model)都是基于QAbstractItemModel类的,这个定义了视图组件和代理存取数据的接口。数据无线...
从QAbstractTableModel派生自己的MyTableModel类,完成数据显示与编辑功能的参考工程。
完整工程代码,看完了你的QT View/Model 和 delegate就算入门了。
主要简单讲诉 QT View/Model 和 delegate 完整工程代码
qthelp://org.qt-project.qtwidgets.5141/qtwidgets/model-view-programming.html
现在我们从最简单的QListWidget、QTreeWidget和QTableWidget三个类开始了解最简单的 model/view 的使用。这部分内容的确很难组织。首先,从最标准的 model/view 开始,往往会纠结于复杂的代码
qt ModelView 的简单应用及了解
看到一个老外在blog中写道Model/View是他认为Qt中最不好的一部分了。真的是这样吗?为了回馈开源社区,我写了这篇blog,写的是我认为比较有价值的东东。题目起得是解析,但也没有特别细节的介绍,点到为止,有兴趣的...
Model/View结构使数据管理与相应的数据显示相互独立,并提供了一系列标准的函数接口和用于Model模块与View模块之间的通信
改例子是工作中从同事那里得到的参考例子,感觉经典,就留下来了,虽然内容不多,几乎涵盖了所有相关的操作,很好的参考例子,所以要留下来,方便以后使用
五、Qt Model与View.zip
QT开发者必备,里面有Qt ModelView 学习笔记 很多有用的东东啊
model/view framework; MVC Pattern in Qt; QListWidget
Qt核心组件相关的知识点笔记 Qt的数据库操作 Qt 编写的工具,库等