QModelIndex---QAbstractItemModel

QModelIndex 不止一个构造函数,但是除了无参数的构造函数外,其他的构造函数(能创造出有效索引的构造函数)都被设置为私有。
QAbstractItemModel 是 QModelIndex 的友元,它可以访问这些私有构造函数来创建出有效的索引。
所有模型都是 QAbstractItemModel 的子类(或间接子类),它们继承了QAbstractItemModel的createIndex函数。
22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
QStandardItemModel
可以作为QListView、QTableView、QTreeView的标准model。管理复杂的树型结构数据项,每个数据项可以包含任意的数据。

本模型具有内置的Item类:QStandardItem类,提供了一个用于QStandardItemModel类的项。Item通常包含文本,图标或复选框。每个Item都可以具有自己的背景刷,并使用setbackground()函数设置。当前的背景刷可以使用background()找到。每个Item的文本标签可以用自己的字体和刷子呈现。这些用setFont()和setForeground()函数指定,并使用font()和foreground()读取。默认情况下,项目是enabled, editable, selectable, checkable,并且可以用作drag、drop操作的来源,也可以用作drop的目标。可以通过调用setFlags()来更改每个Item的标志。可以使用setCheckState()函数检查可检查的Item。相应的checkState()函数指示是否已选中该Item。

可以通过调用setData()将特定于应用程序的数据存储在Item中。每个项目都可以包含二维子项表。这使得建立Item的层次结构成为可能。典型的层次结构是树,在这种情况下,子表是一个带有单列(列表)的表。

可以使用setRowCount()和setColumnCount()设置子表的尺寸。项目可以用setChild()将Item放在子表中。通过childe()方法获取指向子项的指针()。新的行和列也可以用insertRow()和insertColumn()插入,也可以与appendRow()和appendColumn()插入。使用附加功能和插入功能时,子表的尺寸将根据需要增长。
现有的子项可以使用removeRow()或takeRow()删除;相应地,可以使用removeColumn()或takeColumn()删除列。
可以通过调用sortChildren()对项目的孩子进行分类。
3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值