QT知识专栏

MVC 结构

Model 处理数据逻辑和程序运行状态。
View 则只负责显示。
Controller 通常负责处理用户交互的部分,从视图读取数据与用户输入,并向模型发送数据;这里顺便提一下,在Qt里面我们并没有Controller的概念,而是Delegate(委托),意义很明显:控制器委托模型来处理数据,模型委托控制器来做数据的交互。model将数据传给delegate,委托它进行一些处理后转发给View进行显示,这些处理当然包括一些数据类型的转换、可读写属性的过滤和判定、绘制样式的控制等等

结构图:
在这里插入图片描述
详细解释:
数据:实际的数据,如数据库的一个数据表或SQL查询结果,内存中的一个 StringList,或磁盘文件结构等。

Model:与实际数据通信,并为视图组件提供数据接口。setData.

View:屏幕上的界面组件,视图从数据模型获得每个数据项的模型索引(model index),通过模型索引获取数据。setmodel.

代理:定制数据的界面显示和编辑方式。在标准的视图组件中,代理功能显示一个数据;当数据被编辑时,提供一个编辑器,一般是QLineEdit。

原文链接:http://c.biancheng.net/view/1864.html
https://blog.csdn.net/u012209790/article/details/54755340

源码在线查看:https://code.woboq.org/qt5/

模型,视图和代理之间使用信号和槽通信。
view 里面包含model 和代理,为成员变量。
代理会依赖model

  1. 数据发生改变时,模型发出信号通知视图。
  2. 用户对界面进行操作,视图发生信号。
  3. 代理发出信号告知模型和视图编辑器目前的状态。

Model

常见数据模型:
继承关系:
在这里插入图片描述
具体介绍
在这里插入图片描述
模型索引:
用途:视图和代理提供存取数据的标准接口。
获取:
在这里插入图片描述
目前包括三种形式:
在这里插入图片描述
项的角色:一个项可以有多个角色,根据角色选择其中的数据。

View

继承关系:
在这里插入图片描述
Qlistwidget等称为便利类,缺乏对大型数据灵活处理的能力,适用于小型数据的显示和编辑。其为每个节点创建了一个item。

Delegate

QAbstraceItemDelegate是所有代理类的基类。

自定义代理:
使用:第二列,使用delegate(实例对象)代理。
ui->tableView->setItemDelegateForColumn(2,&delegate);

原文链接:https://blog.csdn.net/wzz953200463/article/details/114045605

MVC实例:
https://blog.csdn.net/panchang199266/article/details/104849986/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值