Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1812737
  • 博文数量: 290
  • 博客积分: 10653
  • 博客等级: 上将
  • 技术积分: 3178
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-24 23:08
文章存档

2013年(6)

2012年(15)

2011年(25)

2010年(86)

2009年(52)

2008年(66)

2007年(40)

分类: C/C++

2012-09-04 17:36:28


 在模式(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) |
给主人留下些什么吧!~~