Qt-模型和视图的学习

模型关系

模型关系
模型/视图体系结构
该模型与数据源进行通信,为架构中的其他组件提供接口。沟通的性质取决于数据源的类型以及模型的实施方式。
该视图从模型中获得模型索引 ; 这些是对数据项的引用。通过向模型提供模型索引,视图可以从数据源中检索数据项。
在标准视图中,委托呈现数据项。编辑项目时,委托使用模型索引直接与模型进行通信。

模型

由上面的关系图可以看出,模型并不存储数据,有一个数据体来存储,可能是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());

项目角色

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值