Qt的MVC设计模式——InterView框架(MVD)⼀,MVC简介
MVC设计模式是起源于Smalltalk的⼀种与⽤户界⾯相关的设计模式。mvc的controller
通过使⽤此模型,可以有效地分离数据和⽤户界⾯。
MVC设计模式包括三个元素:
表⽰数据的模型                                (Model)
表⽰⽤户界⾯的视图                        (View)
定义了⽤户在界⾯上的操作控制      (Controller)
注:MVC是⼀种设计模式 区别于 三层架构(界⾯层、逻辑层、数据访问层)⼆者是两码事
MVC是设计模式,属于微观的解决⽅案(如『博客』这⼀特定应⽤)。
三层架构是系统架构,属于宏观的解决⽅案(如『⽹络』这⼀巨⼤的领域)。
笔者认为MVC是参考了三层架构的⼀种具体应⽤……但也不能简单地认为MVC就是三层架构
⼆,Qt的MVC——InterView框架(MVD)
与MVC设计模式类似,Qt引⼊了模型/视图结构⽤于完成数据与界⾯的分离,即InterView框架。
但不同的是,Qt的InterView框架中把视图和控制部件结合在⼀起,使得框架更为简洁。
为了灵活地处理⽤户输⼊,InterView框架引⼊了代理(Delegate)。
通过使⽤代理,能够⾃定义数据条⽬(item)的显⽰和编辑⽅式。
Qt的模型/视图结构分为了三种部分:
模型(Model)、
视图(View)、
代理(Delegate);
其中,模型与数据通信,并为了其它部件提供接⼝;
⽽视图从模型中获得⽤来引⽤数据条⽬的模型索引(Model Index);
在视图中,代理负责绘制数据条⽬,当编辑条⽬时,代理和模型直接进⾏通信。
模型/视图/代理之间通过信号和槽进⾏通信。
它们之间的关系如下:
数据发⽣改变时,模型发出信号通知视图。
⽤户对界⾯进⾏操作,视图发⽣信号。
代理发出信号告知模型和视图编辑器⽬前的状态。
三,基本概念
1、模型(Model)
InterView框架中的所有模型都基于抽象基类QAbstractItemModel类,
此类由QProxyModel、QAbstractListModel、QAbstractTableModel、QAbstractProxyModel、QDirModel、QFileSystemModel、QHelpContentModel 和 QStandardItemModel类继承。
2、视图(View)
InterView框架中的所有视图都基于抽象基类QAbstractItemView类,
此类由QColumnView、QHeaderView、QListView、QTableView和QTreeView类继承。
3、代理(Delegate)
InterView框架中的所有代理都基于抽象基类QAbstractItemDelegate类,
此类由QItemDelegate 和 QStyledItemDelegate类继承。
四、参考链接

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。