在我们Qt项目的数据实时更新显示中,我们经常会用到MVC框架;Qt也提供了一些MVC(模型/视图结构的类),可以用来管理数据并呈现给用户。MVC的体系结构能使数据和模型分离,使得我们更加灵活的构建模块组件,而且它提供了一个标准模型接口,以允许更多类型的数据显示到现有结构的视图中。
MVC由三种对象组成。Model是应用程序对象,View是它的屏幕表示,Controller定义了用户界面如何对用户输入进行响应。在MVC之前,用户界面设计倾向于三者结合在一起,MVC对它们进行了解耦,提高了灵活性与重用性。MVC之前,用户界面的设计往往是将这些对象组合在一起。MVC的解耦带来了灵活性和重用性。
MVC(视图/模型结构)把数据和视图组件分离,这使得我们可以在几个不同的试图组件中显示相同的数据,并且实现新类型的视图,并且不改变底层的数据结构。也可以根据控制响应的不同命令,在同一个组件区创建不同的视图样式,来加载不同的输入数据。为了更灵活的对用户输入进行处理,引入了delegate这个概念。它的好处是,数据项的渲染与编程可以进行定制。
图 1 MVC模型框架图
如上图1所示,model与数据源通讯,并提供接口给结构中的其他组件使用。通信的性质依赖于数据源的种类与