• 6578阅读
  • 1回复

[Qt学习笔记]QAction与MVC模式 [复制链接]

上一主题 下一主题
离线gooooloo
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-10
我认为QAction就是MVC模式中的model。

MVC模式是,当你在北京改变一个数字,纽约的显示板上即刻就能更新出你改的这个数字。北京这个改数字的设备叫control UI,按下这个数字后,系统把该操作传给一个抽象的处理程序叫做controller,controller进行处理——通知系统后台的数据库(叫做 Model)改数据。Model改数据后通知内部名单上的各显示板(叫做Viewer),跟进的去更新数据。这里一共有4个部件,control UI, controller, Model, Viewer.

在我的一个Qt的例子里,QAction 是model,QMenu既是control UI 也是 Viewer, onQActionEvent(QAction*)这类槽(slot)函数是controller。

new QAction 是创建model,
QMenu::addAction是把control UI(QMenu)和Model(QAction)联系起来,
QObject::connect是把control UI和controller联系起来,
槽(slot)函数是controller通知model改数据的过程,
至于model改数据后通知viewer的过程(观察者模式),应该是Qt内部已经绑定好的了,注册过程发生在addAction的时候。
离线qicosmos
只看该作者 1楼 发表于: 2009-07-10
我觉得不能这样看,我觉得应该设计层次分明的MVC模式,我们可以自己创建view,model,congtrol,其中可以应用观察者模式和策略模式或者命令模式,如果认为qt内部已经做好了这个框架的话,那在qt中应用设计模式就没多大意义了。
Qt交流学习
快速回复
限100 字节
 
上一个 下一个