【Qt之模型视图】1. 模型和视图架构

本文详细介绍了MVC设计模式在IT中的应用,包括模型、视图和控制器的角色,如何通过解耦提高灵活性,以及Qt库中的模型和视图类如QStandardItemModel和QListView的使用。展示了如何通过数据存储多样性适应不同视图,以及模型/视图架构在实际项目中的示例和优势。

1. 模型/视图架构是什么及有什么用

  1. MVC(Model-View-Control)是一种源自Smalltalk的设计模式,通常用于构建用户界面。
    MVC由三种类型的对象组成。模型是应用对象,用来表示数据;视图是模型的用户界面,用来显示数据;控制器定义了用户界面对用户输入的反应方式。在MVC之前,用户界面设计往往将这些对象混为一谈。MVC将它们解耦,以增加灵活性和重用性。
    在之前,可能编程就是,在一个类中,将UI、Data、还有整个控制都写在一起,耦合高,不好拆分。当将之前编写的模块引入到新的项目中时,该模块可能会有很多新项目用不到的内容,还需要手动删除,删除中还会碰到各种问题。
  2. 如果将视图和控制器对象合并,就会得到模型/视图架构。这仍然将数据存储与呈现方式分离,但提供了一个基于相同原则的更简单的框架。这种分离使得可以在多个不同视图中显示相同的数据,并且可以实现新类型的视图,而无需更改底层数据结构。为了实现对用户输入的灵活处理,引入了委托的概念。在该框架中,使用委托的好处在于可以自定义数据项的渲染和编辑方式。
  3. Qt库提供了许多预定义的模型和视图类,如QStandardItemModel、QListView、QTableView等,开发人员可以根据自己的需求选择合适的类来建立模型和视图。同时,开发人员也可以自定义模型和视图类来适应特定的应用场景。

模型/视图,如下所示:
image.png

2. 数据的存储方式可以是多样化的

数据本身并不一定存储在模型中,可以储存在一个数据结构,或者一个文件,一个数据库,或者其他组件中,都是有可能的。
如:一个数据类型,QStringList

QStringList sl;
sl << QString("1") << QString("2") << QString("3") << QString("4") << QString("5") 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FreeLikeTheWind.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值