这两年做过大大小小的任务,但客户端程序都是围绕QT进行的,windows上和MAC上都开发过,甚至做过nvr上的linux系统界面。抛开其他写的工具库、算法库,今天总结一下QT 的性能。以前在学校做项目时用过MFC,所以有必要的话还是将MFC和QT进行对比。
1、口碑
某同事:现在谁还会用MFC开发,我十年前的第一份工作,就是维护别人的MFC客户端。后来跳槽去QT客户端开发,再也不想看MFC了。。。海康的iVMS-4200客户端,流媒体服务器,存储服务器都是用Qt实现;大华的同类型的发布客户端也是QT做的。
我自己只在学校写过一个MFC的客户端,看着“鸡啄米”的系列教程,做了一个视频目标再识别算法实验;见过一份大华用MFC写的客户端demo,是一个监控平台,用了什么树状结构,看不懂框架,只能追部分功能代码。说实话用了QT我也不想看MFC。
2、QT的信号机制
QT的信号连接信号槽,可以将任何两个类对象连接起来,抛开了UI(动作)到DATA_PROCESS(数据处理)的限制。
QT的信号机制可以传递任何参数,有的需要注册,而且信号和槽的参数必须完全一致,安全性好。
创建一个单件类,你想找任何一个类对象都行....
3、QT整个框架的完整性
你了解了一个基类,就可以延伸到任何一个子类,子类的子类.....你看到任何一个子类,可以追踪到基类,并且了解其他子类。这说明了QT本身是精心设计的,在命名,继承,类的组织等方面保持了优秀的一致性。
QT手册,不多解释,看过就知道有多清晰。不仅仅是看到当前类,还能追踪到其他很多父类和子类。
QT完全支持CSS2,UI制作很良心了,无论是美化还是换肤,实现起来都相当简单。
Qt还提供了一个图形用户工具,Qt Designer,可以用来帮助建立用户界面。
QT自带翻译器,不仅仅是中英文。
好了,这样一个清晰、功能强大、工具齐全的UI框架,还完全面向对象,还提供了非常松耦合的信号机制,的确很好用。
当然QT肯定也不是完美的,比如信号连接的时间性能,肯定没有回调函数来的好。