qt 源码创建项目(Qt开发-自定义模型类)
一、自定义模型类
1、QStandardItemModel是一个通用的模型类
(1)、能
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中的常用成员函数
(*)
main.cpp
#include <QtCore/QCoreApplication>
#include <QVariant>
#include <QPoint>
#include <QDebug>
#include <QString>
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<double>();//注意使用方法,模板
qDebug() << endl;
qDebug() << v3.type();
qDebug() << v3.typeName();
qDebug() << v3.toInt();
qDebug() << v3.value<QString>();
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();
}
//打印结果
QVariant::int
int
1
QVariant::double
double
3
3.14
3.14
QVariant::QString
QString
520
"520"
QVariant::QPoint
QPoint
0
false
QPoint(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层结构:数据层、数据表示层、数据组织层、数据显示层
【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】
「链接」
,