做windows界面,用QT还是MFC?
使用Qt吧,前提是在这两者下进行选择。既然提到了Qt和MFC,我想题主肯定是一个C++的开发者。其实,在我看来,Windows下开发界面程序,还有很多其他的选择。下面我就连同Qt、MFC一起来介绍一下几种常用的界面开发框架。
Qt ,Qt之前是被诺基亚作为塞班操作系统的主力开发工具,后被广泛应用于PC领域的开发。Qt最大的优势在于它的跨平台特性,可以实现一套代码编写不同平台下的应用程序,目前多用于Linux系统下的GUI程序开发,Windows下也有一些使用。
MFC .MFC的全称叫做Microsoft Foundation Class(微软基础类库) ,它是将Windows的基础api封装后的一个GUI开发框架。它最大的优势是可以直接使用Windows的系统api,实现程序性能的最大化。它的劣势在于逻辑太过复杂,会让初学者望而却步,事实上,很多大学计算机课堂上都已经不在讲授mfc(MFC背戏称为没饭吃)了。
C# .咦,不是在讲C++吗,事实上,很多Windows下的程序都是使用C#快速开发出界面,在用C++实现后台控制,这样既能快速开发出好看美观的界面(C#优势所在),又能实现高效的后台(C++的优势),岂不快哉。
WEB .既然C#都能开发GUI,那么比C#语法还要简单的web开发语言不行吗?当然可以了。这里举个栗子,大名鼎鼎的PC端词典软件有道英语词典正是WEB&C++搞定的。网易的大牛们使用WEB(如HTML5)技术快速开发出酷炫的界面以及网络通信模块,再用c++实现算法及其他控制模块,就这样最大限度的实现了界面的美观性和程序性能的整合。当然,Windows下的界面开发技术还有很多,欢迎大家关注太科罗技,并在下方积极留言讨论。
其实选什么学习还得根据自身的需求。语言不分好坏在于人。精通才是正道。当下window下流行的编程语言,有vb,mfc,c sharp,。如果没啥限制,建议第三个吧,简单粗暴上手快,开发效率也高。如果公司或硬件限制必须用mfc或其他语言,那学就是。都是微软的产品,我开发项目都用过,知识通用。至于qt封装是全,相对微软自家的产品,用的人少些。问题多靠自己解决
谢邀。
具体选择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。
作为做了近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啊,跨平台,还有鬼知道项目以后要不要跑Linux和嵌入式设备上!界面简单的话,用qml开发,可以直接移植到嵌入式设备上去,还可以把编写逻辑的程序员和界面设计师分离出来!mfc现在微软都放弃更新维护了,mfc开发界面很麻烦的,除非老项目要维护,不然不建议再用mfc做新项目了!Qt的信号与槽很赞,比mfc的回调函数好用多了!
两者没有好坏之分,需要看应用场景。如果是界面要求不高,稳定性和效率要求高的工业软件,MFC是最好的选择。如果是界面要求美观,跨平台使用,QT是最好的选择。但是要注意的是QT企业用是需要授权费的。另外,windows上的界面还有其他选择wpf,direct ui等。这里着重提一下direct ui,目前可以找到比较好的就是duilib这个界面库,开源稳定易用高效。关注我一起探讨呀!
我们来简单比较一下QT和MFC。1.开发速度
整体来说可能MFC会快捷一些,因为windows平台的开发工具大多很智能,因为立足于windows的开发人群很广,从菜鸟到专业人士,但是QT由于基于Linux,可用的开发工具不多,大都比较专业,多是第三方产品,而且集成度不大,第三方库也没有MFC得多,从这一点MFC略胜一筹,但是QT自从被Nokia收购后,官方发布了跨平台集成开发环境QTCreator,所以之后走向就不好说了,个人总体感觉QT Creator和VS.net差距比较大,还需改进。
但是从库本身来说QT集成的功能较MFC庞大,而且使用的封装技术信号和槽也是比较受到赞许的,比如QT Script为QT提供嵌入式脚本,QT界面库支持CSS,所以QT做出来的界面比MFC要好,而且比较容易,MFC就需要借助第三方库了。
因为MFC是浅层封装(最新的2008 sp1加入了BCG的高级界面库,可能有所改善)windows SDK,以降低使用windows SDK引起的开发效率的降低,和开发难度的增加。
所以QT库是比MFC优秀的,两个库都经受了时间的考验,稳定性都很高,Bug几乎没有。
2.运行效率
MFC由于其浅层封装的特点,所以运行效率是比较高的,加上vc对windows的针对性优化,整体性能是比较高的,但是如果加入第三方库就不敢保证了。
QT因为库比较庞大,封装层次较深,所以运行效率较MFC为低,但是在现在的机器配置下,C#大家都不介意了,这些会引起人们的介意吗?
3.学习难度
QT的封装哲学比较明晰,和系统隔离得比较好,门槛不高;
MFC较难精通,因为深入开发之后SDK还是要了解的。
mfc底层太复杂了,但资料多,开源代码多。
qt底层可能好点,但资料和整个开发环境肯定不如vs系列。
微软精力不在mfc上面了,而qt则要在竞争中求存活。
用什么看开发习惯,熟悉哪个用哪个。有困难找我
QT和MFC我在工作中都会用到,MFC主要是一些老的维护程序,近几年新开发的程序基本全部都是用QT。所以我还是建议你用QT,功能强大,使用起来也比MFC简单,而且如果后面需要跨平台移植的话,也会很方便。另外我也在不断更新C++和QT方面的内容,关注我,一起学习进步。
中国首创!新算法让机器读懂细胞语言细胞内有数以亿计的碱基表达程序以及运行策略,而且各不相同。单细胞测序技术可解读单个细胞里的这些信息,但人工干预多过度依赖人为选定的标记基因使得单细胞测序技术对细胞的注释稳定性较低。
论人类下一代语言的可能1。4语言媒介的选用什么样的物质或过程适合作为人类语言的媒介?能作为人类语言的符号媒介要能被人类感知识别,这是借由媒介的物理性达到的。选择一种媒介首先是要利用我们的某一感知能力,或者说感知渠道视觉听觉
品尝秋天的故事,陶醉诗意秋天的美,是静默的,打开窗,是一帘清凉,将夏的那抹炎热,掩埋在秋衣裙底下,有一点凄凉,一点悲伤,一点宁静,一点幻想。在季节中浸染后的秋天,落叶便成了满地的绯红,浓绿并未褪尽,却平添
内蒙古的小孩儿赛起马来有多野?春种一粒粟,秋收万颗子。对于丰收,人们自古以来就不吝歌颂。秦汉时期,每到秋收之后,人们便会聚集在一起,在举行隆重的祭神仪式后,载歌载舞,饮酒奏乐。唐代诗人张籍在江村行中写道一年耕种
中国打破连续抛售美债的状态,美国债务核弹或将出现,不敢赖掉美债华尔街投资者一直在密切关注美联储决策者们关于货币政策路径的评论,由于担心美联储积极推动提高借贷成本可能会使经济陷入衰退,经济学家表示美国经济在2023年硬着陆的风险正在上升,不过,
农业农村部停止无公害农产品认证停开农产品产地证明加强承诺达标合格证工作指导本报讯日前,农业农村部发布深入学习贯彻中华人民共和国农产品质量安全法(以下简称农产品质量安全法)的通知。通知指出,做好与新修订农产品质量安全法施行工作的衔接,停止无公害农产品认证,
高效办公的好助手,MAXHUB领效智能办公本带来全新工作体验随着科技的进步,越来越多的人都采用无纸化办公,特别是现在的互联网公司。就比如我们自己的团队,以前开会讨论东西,都是拿着纸在上面记录。这样做的缺点就是效率太低了,有的时候急急忙忙写的
长城汽车的战略错误目前中国市场正在快速转向新能源汽车,长城汽车却还在大力发展大排量汽车,有点钻牛角尖了,我记得长城几年前发誓要把SUV做饭全球第一,并坚定的停售了轿车,这是第一次战略失误,这样放弃了
贺测亮诗歌你好十月你好十月作者贺测亮题记2022年,10月1日是国庆节,10月4日是重阳节,10月16日是党的二十大召开时间,10月又是秋收季节,喜事多多,可喜可贺。你好,十月!五星齐闪耀,红旗迎风
诗歌我从树下慢慢走过文张福献图片来自网络春天时,我从树下走过树上缀满了粉白的花朵淡淡的粉色如同少女的脸一夜春风后,万树花飘落夏天时,我从树下走过树上缀满了青色的苹果青涩的果实酸酸涩涩我在等待金色的秋末
逝去的都是好日子,活下来的都是有生命力的现在的年轻人看到六七十年代的影视,都说那个年代好,真让你生话在那个年代,以你现在的人生观世界观和价值观,你未必能活下来。那个年代,贫穷落后,物资匮乏,食不果腹,衣不蔽体,举步维艰政