Qt进阶开发:模型/视图原理详解
文章目录
-
- 一、模型/视图架构概述
- 二、模型/视图架构的组成部分
-
- 2.1 模型
- 2.2 视图
- 2.3 委托
- 三、模型类的介绍
-
- 3.1 模型索引
- 3.2 行和列
- 3.3 父项
- 4.项角色
- 四、视图类的介绍
-
- 4.1 基本概念
- 4.2 处理项目选择
- 五、委托类的介绍
-
- 5.1 基本概念
- 5.2 自定义委托
- 六、数据-窗口映射器
一、模型/视图架构概述
应用程序中往往要存储大量的数据,并对它们进行处理,然后可以通过各种形式显示给用户,用户需要时还可以对数据进行编辑。Qt中的模型/视图架构就是用来实现大量数据的存储、处理及其显示的。Qt4中引入了一组新的项视图类,它们使用一个模型/视图架构来管理数据、展示给用户的方式之间的关系。这种架构引入的功能分离思想为开发者定制项目的显示提供了高度的灵活性,而且还提供了一个标准的模型接口来允许大范围的数据源使用已经存在的项目视图。
MVC(Model-View-Controller)是一种起源于Smalltalk的设计模式,经常用于创建用户界面。MVC包含了3个组件:模型(Model)是应用对象,用来表示数据:视图(View)是模型的用户界面,用来显示数据:控制(Controller),定义了用户界面对用户输入的反应方式。在MVC之前,用户界面设计都是将这3种组件集成在一起MVC 将它们分离开,从而提高广灵活性和重用性。如果将视图和控制两种组件结合起来,就形成了模型/视图架构。这同样将数据的存储和数据向用户的展示进行了分离,但提供了更为简单的框架。数据和界面进行分离,使得相同的数据在多个不同的视图中进行显示成为可能,而且还可以创建新的视图,而不需要改变底层的数据框架。为了对用户输