Qt开发自定义模型类(上)
一、自定义模型类
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。cppincludeQtCoreQCoreApplicationincludeQVariantincludeQPointincludeQDebugincludeQStringintmain(intargc,charargv〔〕){QCoreApplicationa(argc,argv);QVariantv1(1);QVariantv2(3。14);QVariantv3(520);QVariantv4(QPoint(15,15));QVariantv5;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。valuedouble();注意使用方法,模板qDebug()endl;qDebug()v3。type();qDebug()v3。typeName();qDebug()v3。toInt();qDebug()v3。valueQString();qDebug()endl;boolktrue;qDebug()v4。type();qDebug()v4。typeName();qDebug()v4。toInt(k);0qDebug()k;falseqDebug()v4。toPoint();qDebug()endl;qDebug()v5。isValid();false,因为v5里面没有装具体的类型数据,所以是无效的,以后使用前都应该判断一下returna。exec();}打印结果QVariant::intint1QVariant::doubledouble33。143。14QVariant::QStringQString520520QVariant::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、系统实现
NextLesson三、小结
(1)、QStandardItemModel是一个通用的模型类
(2)、QStandardItemModel能够以任意的方式组织数据
(3)、使用QVariant能够设计返回值类型可变的函数
(4)、工程中常用数据应用架构为4层结构:数据层、数据表示层、数据组织层、数据显示层
【领QT开发教程学习资料,点击下方链接莬费领取,先码住不迷路】
链接
戏精恶魔洪峤的毁灭史,他所犯下的罪行,远比我们想得更恶劣2020年7月18日,云南省西双版纳傣族自治州勐海县。一通意外来电,打破了小镇维持已久的平静。当地警方得到消息,一名年轻的女孩,从江苏南京达到云南勐海后去向不明,与家人彻底失联。接
听声辨位一触即发雷蛇旋风黑鲨V2电竞游戏耳机体验哈喽大家好,我又双叒叕更新外设了,和摄影一样所谓技术不行装备来凑,更新装备永无止境!我呢,打PUBG非常的菜,但是又喜欢和朋友一起组队玩游戏的那感觉,但是前一阵和兄弟打游戏的时候他
62022中超第1阶段最后一轮(第10轮)继续展开激战,由上赛季保级组的球队赛前在海口赛区高居第2的河南嵩山龙门队PK上赛季殿军得主赛前在海口赛区排名倒数第3的长春亚泰队。赛前河南嵩
奇妙的假期非常奇妙的一次经历。在2021年国庆大假的前一天,我好巧不巧的住进了医院。原因是大便的地方疼痛难忍,以为是上火痔疮犯了,没想到会越来越痛。来医院检查后诊断为肛周脓肿。自行来到门诊后
生死读秒!切莫大意俗话说,水火无情。虽然防溺水安全教育一再提醒,可是连日来还是发生了多起青少年溺水事故!有多人溺亡,有在野河溺亡,有在矿坑溺亡,有在小区泳池溺亡,有父亲带着孩子游泳父亲溺亡事故,令人
普京的又一强援出手了!巴什科尔托斯坦共和国已出兵乌克兰我们大家都知道,俄军虽然总人数高达百万,这个数字在全球来说也可以排到前几名。但是俄罗斯陆军的总人数仅有大约40余万。而随着俄军攻占的区域越来越多(如俄罗斯此前攻占的赫尔松总面积就已
无印良品新大洲本田联合跨界两轮电动车胜算几何来源中国经济网经济日报近年来,随着绿色出行在全球范围内逐渐普及,中国消费者对新能源汽车的接受程度日益提升。在低碳生活的构想中,短距离交通的轻量化选择,让两轮电动车市场拥有了较大的发
罗永浩要做AR时代的苹果或华米OV,新公司命名细红线有深意?中国经济周刊经济网讯(记者孙冰)7月10日晚,罗永浩在交个朋友直播间正式官宣了自己的创业新项目,新公司名称为ThinRedLine(译为细红线,但正式中文名尚未公布),而且已经开始
女工在怀孕期间劳动合同到期,公司不续签怎么办?来源中工网常律师您好!经医生检查,确认我已怀孕3个月了。恰在此时,我跟公司签订的第一份劳动合同于2022年7月底到期。我还想跟公司续订劳动合同,但是公司人事负责人说,合同到期之后,
每年两次加薪,这家创业公司的底气在哪里这家创立七年做到云主机安全第一的企业,已做好了再次弯道超车的准备。文中国企业家记者刘哲铭编辑李薇头图摄影史小兵天气好的时候你不可能超过15辆车,而阴雨天可能。端午节假日前一天,张福
综艺市场的2022上半年遇冷中努力自救缺了选秀的2022上半年综艺市场,没能等到新的爆款出现。在最近几年,春天向来是选秀的季节,选秀也常常能够成为上半年乃至全年最出彩的综艺之一。但在选秀时代宣告落幕之后,急需爆款补位的