使用Qt吧,前提是在这两者下进行选择。既然提到了Qt和MFC,我想题主肯定是一个C++的开发者。其实,在我看来,Windows下开发界面程序,还有很多其他的选择。下面我就连同Qt、MFC一起来介绍一下几种常用的界面开发框架。

  1. Qt,Qt之前是被诺基亚作为塞班操作系统的主力开发工具,后被广泛应用于PC领域的开发。Qt最大的优势在于它的跨平台特性,可以实现一套代码编写不同平台下的应用程序,目前多用于Linux系统下的GUI程序开发,Windows下也有一些使用。

  2. MFC.MFC的全称叫做Microsoft Foundation Class(微软基础类库),它是将Windows的基础api封装后的一个GUI开发框架。它最大的优势是可以直接使用Windows的系统api,实现程序性能的最大化。它的劣势在于逻辑太过复杂,会让初学者望而却步,事实上,很多大学计算机课堂上都已经不在讲授mfc(MFC背戏称为没饭吃)了。

  3. C#.咦,不是在讲C++吗,事实上,很多Windows下的程序都是使用C#快速开发出界面,在用C++实现后台控制,这样既能快速开发出好看美观的界面(C#优势所在),又能实现高效的后台(C++的优势),岂不快哉。

  4. WEB.既然C#都能开发GUI,那么比C#语法还要简单的web开发语言不行吗?当然可以了。这里举个栗子,大名鼎鼎的PC端词典软体有道英语词典正是WEB&C++搞定的。网易的大牛们使用WEB(如HTML5)技术快速开发出酷炫的界面以及网路通信模块,再用c++实现演算法及其他控制模块,就这样最大限度的实现了界面的美观性和程序性能的整合。

当然,Windows下的界面开发技术还有很多,欢迎大家关注太科罗技,并在下方积极留言讨论。


其实选什么学习还得根据自身的需求。语言不分好坏在于人。精通才是正道。当下window下流行的编程语言,有vb,mfc,c sharp,。如果没啥限制,建议第三个吧,简单粗暴上手快,开发效率也高。如果公司或硬体限制必须用mfc或其他语言,那学就是。都是微软的产品,我开发项目都用过,知识通用。至于qt封装是全,相对微软自家的产品,用的人少些。问题多靠自己解决


大部分情况优先使用qt,开发用什么库主要考虑成本,如果你需要大量调用windowsapi 对界面设计没有太高要求可以考虑用mfc,如果不需要直接用qt吧,mfc好处是很多老人本来就会,winapi做了比较好的封装,不需要引用库。qt的优点就不用说了,太多了,比如跨平台,界面和业务代码隔离,界面设计方便基于qss等


作为做了近2两年windows application的人来说,我直接说Qt!首先我主要做pc和下位机通信的app,如串口、tcpip、汇流排类等。选qt理由如下:【仅从我的经历来讲】

1、Qt开发效率高。我第一个项目前几个项目用的MFC,平均时长3个月,一个软体80%的时间都放在界面上去了。然后后面开始使用Qt,一个月能做好几个app没压力,界面布局很方便,不用像MFC去一个一个控制项拖动。

2、Qt库简单易懂。个人的感觉就是MFC与win api联系太大了,你要玩转MFC,必须要把windowsapi相关知识搞得明明白白的。而Qt库把每一个功能都封装得很好,很容易去使用,不需要没事就百度怎么用。

3、MFC已经在淘汰边缘了。到如今Qt还在不断更新,我目前使用的是Qt5.9。在平时招聘的时候,也很少看到有公司让你专职做MFC,要么Qt,要么C#。

4、Qt跨平台。我当初换Qt的一个原因还是,我以后如果不做windows了可以换linux上位机,Qt可以做到很好的跨平台,而MFC不行。


谢邀。

具体选择QT还是MFC,这要根据题主的需求来决定。如果你入职一家公司,做的是老项目的维护,而原有项目是采用MFC来开发,那么当然,你没得选,只能老老实实的继续MFC,虽然这玩意写起来真的很虐心。如果是一个全新的项目,那么还是首选Qt。

下面根据自己的认识,推荐几款Windows下开发界面开发常用技术。

1)Qt

号称可以跨平台,语法结构简单清晰。面向对象的特性体现的比MFC明显。代码写起来比较优雅,也就是说上手会快一点,最新版本支持的特性QML,可以让我们用JS,CSS来绘制客户端界面,写起来效率也是蛮高的。缺点就是文档可能没有MFC那么齐全,基本只有官方的官网和Demo,而且发布包体积会比较大。

2)MFC

全称Microsoft Foundation Classes(微软基础类库),可以算的上是上古产品了吧,目前除了维护老项目,应该很少有团队使用MFC来开发了吧。基本上MFC == 「没饭吃」。建议如果你是初学者,界面开发还是不要选择MFC了。它唯一的好处就是微软的MSDN文档比较齐全,相关论坛和那种问答的资源要多很多,一般初学者遇到的问题都可以看到前辈们的解决方法。不过目前它已经被其亲爹微软抛弃了。

3)Duilib

目前已开源,是一款强大的界面开发工具,可以将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率。唯一不足的是原开发者已经停止维护,很多都是个人在维护,出了问题的话,只能自己去摸索,Debug。下面是一款个人使用Duilib开发的迅雷播放器界面效果。

最后附上一些基于Duilib开发的软体不完全列表(欢迎大家补充指正):

百度: PPS 爱奇艺 百度杀毒 百度卫士 91助手

腾讯: 微信 企业微信

阿里: 钉钉 支付宝安全控制项 PP助手

书生云: 书生企业云盘

微软: 微软壁纸

网易: 易信 云音乐 荒野行动PC版

华为: 华为网盘

金山: 金山快盘

京东: 咚咚

cctv: cbox

酷我: 酷我音乐盒

蘑菇街: TeamTalk

火绒: 火绒安全软体

盘古: 盘古越狱工具

顺网: 网维大师 91y

网狐: 网狐经典版

墨迹风云: 墨迹天气

zoomcloud: Zoom 视频会议

搜狗: 搜狗手机助手

沃通: 沃通代码签名工具

驱动人生: 驱动人生 人生日历

维棠: 维棠

深圳市北斗智研科技: 智能办公助手 ERP管理系统

4)Electron

这玩意应该是这几年才火起来的吧,宣城自己可以通过使用JavaScript、HTML和CSS构建跨平台的桌面应用程序,让人们感觉JS真的有一统天下的趋势(Web、移动端、PC客户端)。开发效率真心的高,不过貌似商用上还不是特别的多,典型的成功案例目前知道的有VSCode,Atom。


两者之间二选一的话肯定选Qt了,如果再考虑开发效率与运行效率的话,可以在Python平台上使用Qt的Python绑定库PyQt,再配合C++,主体用Python语言,界面部分用PyQt搭建,核心演算法部分用C++封装成动态库DLL文件,在Python里去调用。这样是一个不错的方案,Python部分缩短了开发时间,C++部分保证了运行速度,只是前提是,你要会用C++写DLL,在Python里会调用DLL。


?先下载个电脑管家,卸载金山毒霸,然后再下载个360,去卸载电脑管家,再下载个瑞星,去卸载360,再下载个金山卫士,去卸载瑞星,再下载个小红伞,去卸载金山卫士,再下载个金山毒霸,诶,怎么又绕回来了??????重启电脑后即可嘞!??


两者皆可,看你熟悉那个方面和实际项目需求了,如果要是跨平台的,建议还是Qt吧,一次编写,处处编译,Linux,Mac皆可。我个人偏向还是Qt一些,简单快捷,可以自定义样式qss,qml等,可以快速的构建美观,整洁的界面,这在嵌入式中经常会用到,当然MFC也可以实现,但构建自己所需的界面,实现起来比较麻烦,不灵活,好多东西需要自己集成,重写,自己封装,不值得推荐。


两者没有好坏之分,需要看应用场景。如果是界面要求不高,稳定性和效率要求高的工业软体,MFC是最好的选择。如果是界面要求美观,跨平台使用,QT是最好的选择。但是要注意的是QT企业用是需要授权费的。另外,windows上的界面还有其他选择wpf,direct ui等。这里著重提一下direct ui,目前可以找到比较好的就是duilib这个界面库,开源稳定易用高效。关注我一起探讨呀!


当然是QT了,MFC是多少年前的?已经没有人用了吧?如果是开发windows桌面应用,还是用C#吧,一个原因是开发速度快,最重要的是可以用winform或者wpf开发windows界面,开发速度都要比QT快很多,运行效率也不差的。


推荐阅读:
相关文章