QT中提供模型视图结构,把图形显示和数据结构分开,其机制和MVC机制相同的,不过C(controller)是通过Delegate实现的。Model负责处理数据,View负责显示,Delegate负责View和Model的交互和View的渲染。将view和数据源隔离的方式有几大好处:
- 在处理大数据集时,各个组件独立处理,不降低性能
- 一个model可以映射多个view,可以用不同的方式查看相同的数据
- 如果底层数据源的存储改变了,只需要处理model就可以
QT提供完善的MVC实现机制,可以使用Framework提供的,也可继承自定义实现
view类图
model类图
Delegate类图