在了解Qt开发框架和MFC相比具有什么优势之前我们先来看一下windows桌面程序开发的历史。在MFC之前,一般都是使用C++来开发Windows桌面程序,通过调用WindowsSDK提供的API,要付出很大的精力来处理UI程序中的各种消息,不仅工作量繁重,而且还很容易出错。
随着VisualStudio的出现,以及随之而来的MFC(MicrosoftFoundationClassLibrary)改变了这一状况,它使用了一些技巧——消息宏映射,使得开发者只需要在代码中添加一些简单的宏,就可以实现事件消息与处理程序之间的响应,将程序员从繁琐的消息循环中解脱出来,在当时来说,确实让人惊艳!
然而MFC也有很多缺陷,设计不够优雅,虽然号称是面向对象的框架,但是中间却使用了大量晦涩难懂的宏技巧,无形中增加了学习难度,而且如它的名称所示,微软基础类库,也就适合Windows桌面程序开发,无法跨平台。
QT也是一个可以用来开发桌面程序的C++库,它使用了信号-槽机制,并通过一些辅助工具,如moc、uic、rcc等,用来处理信号与响应函数的关联、UI设计、以及资源管理等。极大的方便了C++桌面程序开发,更重要的一点是它不但有开源版本,而且支持跨平台,当然代码需要重新编译。
QT最大的不足在于它需要一次中间编译过程,也就是要通过moc、uic、rcc等工具生成中间文件,将极大的增加编译时间。
单纯的从技术方面来说,Qt显得要更先进一些,MFC已经适应不了很多企业的需求,所以在当前企业的开发中,除了需要维护一些老的项目需要使用到MFC之外,新项目已经很少使用MFC了。
如果说非要在MFC和Qt之间选择一个做开发,那么Qt无疑比较优质的选择,而且现在很多企业也要求要掌握Qt开发技术,因此建议大家赶紧学起来。