Qt 与 MVC

2018-11-14

   MVC 软件架构模式出现的很早,80年代随着可视化操作系统的兴起就开始发展了。“MVC模式最早由Trygve Reenskaug在1978年提出[1],是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件架构。”在那个8086的年代直接从语言层面为UI显示考虑,我真的不得不佩服项目负责人开拓创新的精神。但此文并不讨论那些宏观的问题,也不像谈MVP、MVVM等架构,只是想从Qt如何实现MVC来讨论一下UI编程的问题。我不怎么喜欢UI编程,从学校时代就是如此。很简单,因为做这事儿太麻烦了,而且吃力不讨好,做的再漂亮、精细、易用,又有多大的好处呢?能用不就行了。CAD软件涉及到二维、三维操作,其架构的复杂度,是WEB软件架构所不能比的,甚至游戏架构复杂度都比不上它。最核心的功能在于显示、交互、算法的结合。
  Qt 对于MVC架构模式做出了些改动,称之为 Model/View 编程。弱化了Controller 概念,把Controller和View 放在一起了。同时,还新增了一个概念:delegate。Models, views, 和 delegates之间的通信,依靠增强的C++ 语言(Signal/ slot 机制,moc编译器)实现的。Qt提供了这三类物体的 abstract class,我们extend 这些class 就能实现常规UI的功能。90年代提出的”观察者模式“对于 MVC架构的实现提供了标准描述。而Qt的元编译器则从语言层面实现了观察者模式。

QStandardItemModel[link]
  一个UI控件对应的数据的抽象模型。这是Model/View中的Model。
  它的职责就是给UI控件提供显示相关的数据。但是,对于显示数据的更改,如何通

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值