前面学习了Qt中的模型-视图,在模型中有一个常用的模型类,通用模型类QStandardItemModel,它是既支持表格形式存放数据项,又支持树形存放数据项的模型,在日常开发中比较常用。在讲解QVariant类之前,先来看看通用模型类QStandardItemModel。
1. 通用模型类QStandardItemModel
作为一个通用模型类,QStandardItemModel能够以任意方式(线性/非线性)组织数据,数据组织的基本单位为数据项QStandarItem,每个数据项能够存储多个具体的数据,需要使用数据角色来设置这多个数据(不然视图无法知道数据如何显示),每个数据项可以对数据状态进行设置,如可编辑、可选。QStandardItemModelQStandardItemModel在项目中的角色大抵如此:
QStandardItemModel继承自QAbstractItemModel类,QStandardItemModel类内有两个重要类:表示数据项的QStandardItem和对数据项进行索引使用的QModelIndex。QStandardItemModel作为一个模型类,它可供视图存取数据。
2. 万能数据类型QVariant类
在前面讲过,索引接口定义在QAbstractItemModel类中,它是一个虚函数:
virtual