上篇总结中也提到了,Qt还有一类常见的UI控件,这类控件采用了Qt的一种称作Model/View框架的技术。每个UI开发人员都应该了解ModelView编程,该技术涉及一系列list、table和树tree结构等控件。这些视图类使用model/view体系结构来管理数据与其显示方式之间的关系。此体系结构引入的功能分离为开发人员提供了更大的灵活性,可以自定义项目的表示形式,并提供标准的模型界面,以允许将各种数据源与现有项目视图一起使用。
Model/View 框架
Model-View-Controller(MVC)机制是一种经常使用的管理用户数据和视图关系的模式,通常在构建用户界面时使用。model是管理数据对象,view是将数据显示给用户,Controller提供数据处理接口。在MVC使用之前,用户数据处理接口与数据对象设计在一起,MVC简化了这种操作,从而增加来很多灵活性。
如果将View和Controller连接在一起,那么就是model/view机制。这仍然使用和数据和视图分离的原则,但是它提供了一个更加简单的框架。这种分离使将相同数据显示在多个视图中成为了可能,并且重新实现新的数据,但是不需要改变数据的结构。为了用户输入灵活,我们现在介绍delegate(代理)的概念。使用delegate的优点是deledate使得数据的items可以被编辑和定制。