QT/模型视图MVC
文章平均质量分 82
QT模型视图架构的编程方法
暴躁的野生猿
请加入裙,欢迎同行一起学习交流,1零251②7672。百度搜索【CSDN 暴躁的野生猿】也可搜到群号码
展开
-
QT模型视图MVC系列教程(7)---自定义视图
1、概念对于同一个MODEL,我们可以将其展示为不同的界面。例如:QFileSystemModel *fModel = new QFileSystemModel(); fModel->setRootPath("C:\"); QTreeView *treeView = new QTreeView(); treeView->setModel(fModel); treeView->show(); QTableView *tableView原创 2021-02-28 10:39:23 · 1175 阅读 · 2 评论 -
QT模型视图MVC系列教程(6)---自定义委托Delegate保持显示
以下内容,不再区分这3个词:Delegate 代理 委托。假设有这样一个场景,你已经使用QComboBox为表格View中的某一列数值进行了代理,当用户双击单元格时,这个下拉列表才会出现,一旦用户选择完成,这个comboBox就会被隐藏起来,只在该单元格上显示一个文字。如果你想让这个下拉列表一直保持显示该怎么办?再举一个场景:你已经使用了QSpinBox为某一列的数字做代理,只有用户双击该单元格时,这个Spinbox的上下箭头才会出现,一旦用户选择完成,这个Spinbox就会被隐藏起来,只在该单元格原创 2021-02-04 18:12:37 · 2978 阅读 · 8 评论 -
QT模型视图MVC系列教程(5)---自定义委托Delegate编辑时显示
委托的作用是让程序员实现视图中内容的自定义展示方式和编辑方式。下面列举几个场景,这些场景适合用委托:(1)表格中要显示或编辑一列日期,默认的表格的单元格的输入框都是类似QLineEdit的一个小控件,程序员想要监控用户输入的合法性,实现起来较为繁琐。类似场景还有:某一列单元格只允许输入[1,120]之间的正整数,等等。(2)表格中有一列内容是学生的成绩,为了便于观察成绩的分布,用户希望把成绩大小展现为进度条样式,如果学生的成绩低于60分,则显示为红色。以上场景就是涉及到了单元格内容的展示原创 2021-02-03 16:12:29 · 2964 阅读 · 5 评论 -
QT模型视图MVC系列教程(4)---角色role的使用(Qt::DisplayRole 类型)
模型正在维护的数据,不仅是视图中所看到的那些,还有很多数据在视图是被隐藏的,你看不到,不代表他没有,比如,一个列表视图中,不仅会显示文字,文字前可能还会显示一个图标。其实,每一个条目,所包含的内容,不仅有文字、图标,还有很多,到底有哪些呢,看一下枚举Qt::DisplayRole 就知道了,在QT5.10中,有22个,以后随着QT版本更新,这个值可能会变化。当视图View向模型Model索要数据时,不仅要提供索引 index,还必须要提供角色role。index和role共同决定出视图到底在向Mod原创 2021-02-02 19:22:41 · 11487 阅读 · 5 评论 -
QT模型视图MVC系列教程(1)--概念解析与官方资料
在QT官方帮助文档中搜索:Model,找到:Model/View Programming 以及Model/View Tutorial 系列教程,当然看起来有些费劲,但却是最权威的资料。0、MV架构该文章来自【暴躁的野生猿】博客,如有非法转载,请读者帮忙举报下。MVC指的是Model、View、Control,模型视图控制三者分离的一种数据与用户交互的方式。Qt本质上实现的是MV结构,没有Control,其实MV架构已经足以应付大多数应用场景了。其优势是把数据的存储方式和视图的展示方式,.原创 2021-02-02 18:09:00 · 1862 阅读 · 3 评论 -
QT模型视图MVC系列教程(3)---自定义模型,以QAbstractTableModel为例
MVC中的M就是模型Model,QT中所有的模型都继承自:QAbstractItemModel查阅手册可知,它的子类有3个:分别是列表模型、代理模型、表格模型。要实现自定义模型,可以继承QAbstractItemModel以及任何一个后代类(含子类、孙子类。。。等),按照QT的设计管理,名字里带抽象字样Abstract的类,都不能直接使用,必须继承并自行实现某些特定函数;对于QT自带的不带Abstract字样的Model类,可以不用继承重写,直接new出来使用即可,这种情形较为简单。所以本文原创 2021-02-02 11:59:12 · 2355 阅读 · 0 评论 -
QT模型视图MVC系列教程(2)-模型数据索引QModelIndex详解
从名字可以看出,他是模型的索引,只要对模型实体(各种xxxModel的实体)施加这个索引,model就会返回数据集中对应的值,或者通过这个索引修改对应数据集中的值。类比数组就更好理解了,charbuf[8] = {'a', 'b','c','d','e'}; 给定索引3,我们就能从数据集合中读出该值为'c',或者任意修改数据集中的第3个值的值。、...原创 2021-02-01 17:51:09 · 9067 阅读 · 6 评论