我认为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的时候。