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中委托的继承关系见下图