博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第五十八课、自定义模型类(上)------------------狄泰软件学院
阅读量:5924 次
发布时间:2019-06-19

本文共 2279 字,大约阅读时间需要 7 分钟。

 一、自定义模型类

1、QStandardItemModel是一个通用的模型类

(1)、能够以任意的方式组织数据(线程、非线性)

(2)、数据组织的基本单位为数据项(QStandardItem)

(3)、每一个数据项能够存储多个具体数据(附加数据角色)

(4)、每一个数据项能够对数据状态进行控制(可编辑、可选...)

2、Qt中的通用模型类QStandardItemModel

(1)、QStandardItemModel继承自抽象的模型类QAbstractItemModel

(2)、QStandardItem与QAbstractItemModel是聚合关系

(3)、QAbstractItemModel里面存储的东西是各种各样的

(4)、变体类型可以返回不同的类型

3、Qt中的变体类型QVariant(类型可变)

(1)、 QVariant是一个用于封装的类型

(2)、QVariant能够表示大多数常见的值类型

(3)、QVariant每次只能封装(保存)单一类型的值

(4)、QVariant的意义在于能够设计“返回类型可变的函数”

4、变体类型QVariant中的常用成员函数

  

#include 
#include
#include
#include
#include
int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QVariant v1(1); QVariant v2(3.14); QVariant v3("520"); QVariant v4(QPoint(15, 15)); QVariant v5; qDebug() << v1.type();//指的是v1存储的值的类型 qDebug() << v1.typeName(); qDebug() << v1.toInt(); qDebug() << endl; qDebug() << v2.type(); qDebug() << v2.typeName(); qDebug() << v2.toInt();//会发生截断 qDebug() << v2.toDouble(); qDebug() << v2.value
();//注意使用方法,模板 qDebug() << endl; qDebug() << v3.type(); qDebug() << v3.typeName(); qDebug() << v3.toInt(); qDebug() << v3.value
(); qDebug() << endl; bool k = true; qDebug() << v4.type(); qDebug() << v4.typeName(); qDebug() << v4.toInt(&k);//0 qDebug() << k;//false qDebug() << v4.toPoint(); qDebug() << endl; qDebug() << v5.isValid();//false, 因为v5里面没有装具体的类型数据,所以是无效的,以后使用前都应该判断一下 return a.exec();}
main.cpp
//打印结果QVariant::intint1QVariant::doubledouble33.143.14QVariant::QStringQString520"520"QVariant::QPointQPoint0falseQPoint(15,15)false

二、工程中的使用

1、工程中常用模型设计

(1)、解析数据源中的数据(数据库、网络、串口等)

(2)、将解析后的数据存入QStandardItem对象中(解析成可读的形式)

(3)、根据数据间的关系在QStandardItemModel对象中组织数据项

(4)、选择合适的视图显示数据值

2、工程中常用的模块设计

 

3、实例分析

(1)、在文件中以行的形式存储了考试成绩信息(ID、Name、Score)

(2)、开发GUI程序显示文件中的数据

A、计算平均成绩

B、查找最好成绩和最坏成绩

C、可刷新显示的内容和删除的内容

4、系统架构图

(1)、将读文件这种底层操作封装在数据层完成

(2)、读后数据到了内存,然后交于数据表示层来进行具体表示

(3)、数据表示层交于数据组织层(相当于一个模型),数据组织层根据需要传给视图

(4)、显示数据

 

5、系统核心类图(每一次对应一个(或者一组)类)

6、系统实现

Next Lesson

三、小结

 (1)、QStandardItemModel是一个通用的模型类

(2)、QStandardItemModel能够以任意的方式组织数据

 (3)、使用QVariant能够设计“返回值类型可变的函数”

(4)、工程中常用数据应用架构为4层结构:数据层、数据表示层、数据组织层、数据显示层

转载于:https://www.cnblogs.com/gui-lin/p/6527183.html

你可能感兴趣的文章
《wireshark网络分析实践》1:wireshark简介
查看>>
实用贴:hadoop系统下载安装教程
查看>>
SAP使用BAPI创建物料主数据的最小输入
查看>>
腾瑞制药完成新一轮融资,君联资本、中金资本和IDG资本 ...
查看>>
携新一代车规级固态激光雷达而来,速腾聚创为助力自动驾驶量产有何新动作? ...
查看>>
idea 创建运行web项目时,报错: Can not issue executeUpdate() for SELECTs解决方案
查看>>
入门科普:Python、R、大数据、云计算最全学习资源都在这里
查看>>
如何用纯 CSS 创作一个过山车 loader
查看>>
分布式事务中间件 Fescar - 全局写排它锁解读
查看>>
阿里云服务器怎么选择合适CPU/内存和宽带配比?
查看>>
阿里云新发布ECS状态变化类事件
查看>>
直播开发过程中关于直播技术的架构问题
查看>>
如何查看linux中文件打开情况
查看>>
springboot+jwt做api的token认证
查看>>
FastDFS的配置、部署与API使用解读(1)Get Started with FastDFS
查看>>
分布式--Spring Boot 微服务框架
查看>>
关于FileZilla上传文件后服务器端文件与本地文件大小不一致的解决方法
查看>>
手写SpringMVC实战,一切从Spring底层源码分析开始
查看>>
Spring源码---BeanFactory的抽象
查看>>
XWiki 11.1 发布,协作式应用开发平台
查看>>