QStandardItemModel是一个通用的模型类
-能够以任意的方式组织数据(线性,非线性)
-数据组织的基本单位为数据项(QStandardItem)
-每一个数据项能够存储多个具体数据(附加数据角色)
-每一个数据项能够对数据状态进行控制(可编辑,可选,...)
Qt中的通用模型类QStandardItemModel
Qt中的变体类型QVariant
-QVariant是一个用于封装的类型
-QVariant能够表示大多数常见的值类型
-QVariant每次只能封装(保存)单一类型的值
-QVariant的意义在于能够设计“返回类型可变的函数”
变体类型QVariant中的常用成员函数
-bool isNull()
-bool isValid()
-void setValue(const T&)
-Type type()
-const char *typeName()
-T value()
工程中的常用模型设计
-解释数据源中的数据(数据库,网络,串口,等)
-将解析后的数据存入QStandardItem对象中
-根据数据间的关系在QStandardItemModel对象中组织数据项
-选择合适的视图显示数据值
实例分析:
-在文件中以行的姓氏存储了考试成绩信息(ID,Name,Score)
-开发GUI程序显示文件中的信息
·计算平均成绩
·查找最好成绩和最差成绩
·可刷新显示的内容和删除内容
系统架构图
系统核心类图
DataSource类的设计与实现
-设置数据源并读取数据
-对数据进行解析后生成数据对象
右键上下文菜单的实现
-定义菜单对象(QMenu)
-连接菜单中的QAction对象到槽函数
-定义事件过滤器,并处理ContextMenu事件
-在当前鼠标的位置打开菜单对象
总结:
-数据源类(DataSource)用于抽象表示数据的来源
-模型类(Model)用于从数据源获取数据并组织
-视图类(View)用于显示模型中的数据
-数据应用4层架构设计非常易于扩展和维护