在模式(Model)中的每一个数据元素都一个模式索引和一系列称为角色(Roles)的属性.
Roles可以携带任意值.
通常使用的角色是: Qt::DisplayRole,QT::EditRole,其它的角色作为补充性的数据
如: Qt::ToolTipRole, Qt::StatusTipRole, 与 Qt::WhatsThisRole ,其它的一些控制着基本的
显示属性,诸如,Qt::FontRole, Qt:: TextAlignmentRole, Qt::TextColorRole, Qt::BackgroundColorRole).
对于list Model ,唯一和索引相关的是行号,与之相关的是 QModelIndex::row()
对于table model ,和索引相关的事行号和列号,可从QModelIndex::row() 和 QModelIndex::column()得到
对于tree model ,和table相似,但有如下不同:
1,如同table model 一样,它的顶级跟项的父亲是root,(一个无效的QModelIndex),但是,其它项的
父亲是在层次结构中的项。parent 可通过QModelIndex::parent()存取。每一项都有它自己的角色数据。
并且有一个或多个孩子,
2.因为items 能有其它的一些子项,它可能会代表一些递归的数据结构。
使用模式能获得一些数据的性能和存储优势。
自定义一个模式:
我们可以从一些模式基类来创建自定义的模式,QAbstractItemModel 类被用于支持各种各样的模式定义
。包括那些基于递归数据结构的模式。QAbstractListModel和QAbstractTableModel 为一些一维和
二维的数据集提供方便.
模式/视图 编程是将数据与数据表示相独立的技术.
模式是一个类,它为数据存取提供唯一的接口
视图同样是一个类,这个类能够将数据从模式中在屏幕上呈现给用户
阅读(2804) | 评论(0) | 转发(0) |