模型关系
模型/视图体系结构
该模型与数据源进行通信,为架构中的其他组件提供接口。沟通的性质取决于数据源的类型以及模型的实施方式。
该视图从模型中获得模型索引 ; 这些是对数据项的引用。通过向模型提供模型索引,视图可以从数据源中检索数据项。
在标准视图中,委托呈现数据项。编辑项目时,委托使用模型索引直接与模型进行通信。
模型
由上面的关系图可以看出,模型并不存储数据,有一个数据体来存储,可能是stringlist或者是别的数据体来负责具体的存储数据,用命令返回模型的数据其实就是返回数据体的数据,内部已经封装了。
模型中,每个数据都有一个唯一的索引指定(QModelIndex)。用索引可以表示数据的位置
该图显示了一个基本模型的表示形式,每一个项目由一个行号和列号进行定位
//通过指定QMOdelIndex()为父项来表示模型中的顶级项目
QModelIndex A = model->index(0, 0, QModelIndex());//A数据的位置
QModelIndex B = model->index(1, 1, QModelIndex());//b数据的位置
QModelIndex C = model->index(2, 1, QModelIndex());//C数据的位置
这种树状结构的模型,必须要指定父项目,不然数据就会出错
QModelIndex indexA = model->index(0, 0, QModelIndex());
QModelIndex indexB = model->index(1, 0, indexA);//指定父项为A。从A下的索引开始查找
QModelIndex indexC = model->index(2, 1, QModelIndex());