界面开发用qt还是java,做windows界面,用QT还是MFC?

先看一下Windows桌面程序开发的简要历史。在MFC之前,使用C++开发Windows桌面程序,只能通过调用WindowsSDK提供的API,要付出很大的代价来处理UI程序中的各种消息,不仅要做很多繁琐的重复性工作,还特别容易出错。

后来随着VisualStudio的出现,以及随之而来的MFC(MicrosoftFoundationClassLibrary)改变了这一状况,它使用了一些技巧——消息宏映射,使得开发者只需要在代码中添加一些简单的宏,就可以实现事件消息与处理程序之间的响应,将程序员从繁琐的消息循环中解脱出来,在当时来说,确实让人惊艳!

界面开发用qt还是java,做windows界面,用QT还是MFC?_第1张图片

然而MFC也有很多缺陷,设计不够优雅,虽然号称是面向对象的框架,但是中间却使用了大量晦涩难懂的宏技巧,无形中增加了学习难度,而且如它的名称所示,微软基础类库,也就适合Windows桌面程序开发,无法跨平台。

QT也是一个可以用来开发桌面程序的C++库,它使用了信号-槽机制,并通过一些辅助工具,如moc、uic、rcc等,用来处理信号与响应函数的关联、UI设计、以及资源管理等。极大的方便了C++桌面程序开发,更重要的一点是它不但有开源版本,而且支持跨平台,当然代码需要重新编译。QtCreator还提供了大量的工程模板,见下图:

界面开发用qt还是java,做windows界面,用QT还是MFC?_第2张图片

QT最大的不足在于它需要一次中间编译过程,也就是要通过moc、uic、rcc等工具生成中间文件,将极大的增加编译时间。

从纯技术的角度来说,QT无疑更先进,而MFC作为一种正在淘汰中的技术,已经被它的主人——微软抛弃,所以除了是维护一些老的使用MFC开发的项目,新项目已经很少有人使用MFC了。在我默认安装的VS2017中已经找不到MFC工程模板,见下图,当然可以使用一些办法找到MFC,但是默认把它藏起来已经足以说明微软的态度。

界面开发用qt还是java,做windows界面,用QT还是MFC?_第3张图片

总之,如果是在MFC与QT之间做二选一的选择,那么毫无疑问是选择QT!如果还没有深入学习C++语言,只是想学Windows桌面程序开发的话,那么C#.Net也是不错的选择,相比C++开发效率更高,不足之处是跨平台比较困难而且运行效率不如C++程序。此外,像Java与Python也是不错的选择。

你可能感兴趣的:(界面开发用qt还是java)