一 简介
1. 模型视图架构(Model/View Architecture)是 Qt 中用于处理和展示数据的一种设计模式,它将数据的管理(模型 Model)、数据的可视化(视图 View)、用户与数据的交互(控制器,通常是通过委托(代理) Delegate 实现)分离开来,从而提高了代码的可重用性和可维护性。
二 分类
1. 模型
1.1 说明:模型是数据的容器,用于管理原始数据,模型提供了一种标准的接口,使得数据可以被不同的视图访问和展示,而无需关心数据的具体来源或格式。
1.2 抽象模型类
1.3 标准模型类
2. 视图
2.1 说明:视图提供一组界面组件来展示模型管理的数据,不同的视图可以以不同的方式展示同一个模型管理的数据。
2.2 抽象视图类
2.3 标准视图类
3. 委托(代理)
3.1 说明: 委托(代理)负责用户与数据的交互,例如编辑、绘制等。Qt 内置的委托类功能有限,而且可以被其他功能(例如:修改样式表)代替;在面对复杂的绘制、交互需求时,我们需要创建自定义委托类、重写虚函数来实现需求。
3.2 抽象委托(代理)类
3.3 标准委托(代理)类
4. 代理模型
4.1 说明:代理模型常用于在数据被传递给视图之前对模型中的数据进行排序、搜索、过滤、转换等操作,而不改变模型中的数据。
4.2 抽象代理模型类
4.3 标准代理模型类
5. 其他
本章给大家总体介绍了模型视图框架的基本组成;在之后的章节中我会详细介绍模型、视图、委托(代理)、代理模型的使用,以及如何使用自定义模型、自定义视图、自定义委托(代理)、自定义代理模型。在这块内容的最后我会跟大家分享一个使用模型视图框架创建自定义表格控件的Demo。请大家多多点赞关注~