QModelIndex


setModel()来实现view 的model显示

modelindex 是用来在model里面定位数据的,他是QAbstractItemModel的子类

通过item view,delegates,selection models,在model里来定位一个item。

每个index由三部分组成:row,column,和表面model的指针,对于一维列表,column永远为0

QAbstractItemModel 的函数

rowCount();columnCount();获取行和列

InsertRows();InsertColumns();RomoveRows();RemoveColumns();插入,删除行列

sibling()返回同级别地址,没有同级别不返回

[virtual] QModelIndex QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const

data() 返回根据index提取数据    QVariant:变体

[pure virtual] QVariant QAbstractItemModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const

模型中的一个数据项会存放多个数据子项,其中一些是应用程序需要处理的数据,另外一些是model/view框架中其他部分需要处理的(视图对象/代理对象)

我们把数据子项所起的作用称为role(角色),因此我们认为一个数据项是多个“角色,数据子项”的集合。

DisplayRole                  如标题是一个数据子项,

DecorotionRole            图标是一个数据子项 ,

ToolTipRole                  鼠标停在上面要显示的文字提示框也是一个数据子项,

UserRole                      存放用户具体应用的数据, 

StatusTipRole              鼠标停在数据区,状态栏要显示的文字 

 WhatsThisRole           用户对数据执行“whats this"命令时要显示的文字

SizeHintRole               一个数据项占据屏幕的尺寸 

 

 

所有数据子项都具有变体QVariant,不同的子项变体内容类型不同

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM