Qt的MVC模型/视图编程(一)——理论知识

一、为什么需要MVC模型/视图

MVC模型/视图架构是用于实现对大量数据的存储,处理及其显示。如下图所示:

没用MVC存储数据的是图片中的上半部分,用了MVC处理数据后的是图片的下半部分;

1:MVC模型/视图的作用

a、模型(数据)与视图(显示)相分离 ;

b、模型对外提供标准接口存取数据(不关心数据如何显示);

c、视图自定义数据的显示方式(不关心数据如何组织存储);

2:模型/视图的优点

a、视图模型分离, 提高代码重用性;

b、提高开发效率;

c、便于后期维护, 降低维护成本;

3:模型/视图的缺点

a、增加了系统结构和实现的复杂性。

b、视图与控制器间的过于紧密的连接。

二、MVC模型/视图的组成部分

        MVC(Model-View-Controller)是一种起源于Smalltalk的设计模式,经常用于建用户界面。MVC包含了3个组件:模型(Model)是应用对象,用来表示数据;视图(View)是模型的用户界面,用来显示数据;控制(Controller)定义了用户界面对用户输入的反应方式;

        将视图和控制两种组件结合起来,就形成了“模型/视图”架构。模型视图模式的直观理解如下图所示:

三、模型类

1、模型定义

        在模型/视图架构中,模型提供了一个标准的接口供视图和委托访问数据。 Qt中的模型类层次结构如下图所示:

2、模型中的索引

a、模型中的数据使用唯一的索引来访问 ;

b、模型索引是数据与视图分离的重要机制 ;

c、QModelIndex是Qt中的模型索引类型:包含具体数据的访问途径,包含一个指向模型的指针; d、模型索引通过行、列和父项(row、column和parent)访问数据 ;

e、模型索引的意义如下图所示:

3、模型中的数据角色

a、模型中的数据在视图中的用途(显示方式)可能不同 ;

b、模型必须为数据设置特定数据角色(数据属性);

c、数据角色用于提示视图数据的作用 ;

d、数据角色是不同视图以统一风格显示数据的标准;

四、视图类

        在MVC模型/视图体系结构中,视图从模型中获取数据项并呈现给用户。内容和表示的分离是通过使用QAbstractItemModel提供的标准模型接口,QAbstractItemView提供的标准视图接口,以及使用了模型索引提供了一种通用的方法来表示数据。 Qt中视图类的层次结构如下图所示:

 五、数据-窗口映射器

        数据-窗口映射器QDataWidgetMapper类是为数据模型和窗口部件提供了一个映射;这样就可以实现在窗口部件上显示和编辑一个模型中的一行数据。

        在实际项目中,经常用数据-窗口映射器QDataWidgetMapper类配合MVC模型/视图使用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

划清界限

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值