模型视图(ModelView)
Qt 包含一组项目视图类,它们使用模型/视图体系结构来管理数据之间的关系及其呈现给用户的方式。 这种体系结构引入的功能分离为开发人员提供了更大的灵活性来自定义项目的表示,并提供了一个标准模型接口以允许广泛的数据源与现有的项目视图一起使用。
本文将通过一个具体的ToDoList实例来介绍如何使用ModelView。
1、MVC模式介绍
模型(Mode)-视图(View)-控制器(Controller) (MVC) 是一种源自 Smalltalk 的设计模式,在构建用户界面时经常使用。MVC 由三种对象组成。 Model 是应用程序对象,View 是它的屏幕呈现,Controller 定义用户界面对用户输入的反应方式。 在 MVC 之前,用户界面设计倾向于将这些对象混为一谈。 MVC 将它们解耦以增加灵活性和重用性。
如果视图和控制器对象组合在一起,结果就是模型/视图架构。 这仍然将数据的存储方式与呈现给用户的方式分开,但提供了一个基于相同原则的更简单的框架。 这种分离使得在几个不同的视图中显示相同的数据以及实现新类型的视图成为可能,而无需更改底层数据结构。 为了灵活处理用户输入,Qt引入了委托的概念。 在此框架中使用委托的优势在于,它允许自定义呈现和编辑数据项的方式。
MVC模式的架构图如下: