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

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

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

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

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

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

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

界面开发用qt还是java,做windows界面,用QT还是MFC?相关推荐

  1. 界面开发(3)--- PyQt5用户登录界面连接数据库

    文章目录 数据库 账户注册 账号登录 找回密码 为了实现用户登录界面的登录功能,我们必须建立一个数据库,并把账号和对应的密码,存储到数据库中.如果输入的账号和密码与数据库中的一致,那我们就允许用户登录 ...

  2. 做windows界面,用QT还是MFC?

    mfc应该很少有人使用了吧. 如果是这两者之前肯定是qt,但qt要注意商用的协议. electron 适合页面不那么复杂,数据信息不那么庞大的.比如xmind,飞书,微信电脑端,vscode. 但如果 ...

  3. 适用于树莓派Raspberry Pi的嵌入式QT平台(二) -- 在Windows下用Qt Creator开发编译Raspberry Qt 5应用程序...

    接着上篇 "交叉编译安装Qt Embedded 5.5",我们已经成功在Windows上交叉编译了Raspberry Pi的嵌入式Qt 5.5.那么我们就可以开始开发基于Qt 5的 ...

  4. python能做界面吗_如何使用pyQT做pythonGUI界面|

    如何使用pyQT做pythonGUI界面| python3 gui教程2020-09-24 23:12:27人已围观 python开发的gui漂亮吗 可以 0.前言 有不学者会问,Python 写的程 ...

  5. java获取界面输入数字_通过JAVA设计 GUI 界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、...

    通过JAVA设计 GUI 界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加.减.乘. 2016-08-22 0 0 0 4.0 分 其他 1 积分下载 如何获取积分? 通过JAVA设计 ...

  6. qt和c#怎么选_请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?

    回答问题之前,先装个逼--没有主导过生命周期三年以上的桌面软件项目的,闭嘴.你连一个桌面软件项目的生命周期都没经历过,你凭什么做技术选型?凭信仰吗? 装逼结束,正文开始. 首先,非主流技术和过时技术先 ...

  7. 用java做登录界面_求用JAVA编写的登陆界面!

    展开全部 这是我刚做的,JAVA布局与其它语言相比难度较大,建议你将两张图片PS成一张图片,做32313133353236313431303231363533e4b893e5b19e313332393 ...

  8. java做可视化界面_利用JAVA编写可视化界面

    /* 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 作 者: 李洪悬 * 完成日期: 2012 年 1 ...

  9. java做windows屏保_java编程加载窗口,制作动画(屏保泡泡)

    1.整体的结构图: 2.编写GameFrame02.java代码: package cn.bjsxt.test; import java.awt.Frame; import java.awt.Grap ...

  10. Qt界面开发(各种控件以及图表)

    Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2.QT漂亮界面 源代码链接:点击打开链接 3.音乐播放器界面 源代码链接:点击打开链接 4.六宫格界面 源代码链接:点击 ...

最新文章

  1. spring4.2更好的应用事件
  2. Java虚拟机是什么
  3. C++11thread之detach()与join()的函数对比
  4. sql同时向两个表插入数据_SQL入门-数据库和客户端的安装,表的创建和数据插入...
  5. python文件操作的方法_python中文件操作的基本方法
  6. 打着改造传统市场的旗号玩垄断
  7. idea中怎么新建vue项目_项目中使用vue-awesome-swiper
  8. 语言包切换 中英文系统切换 vue实现中英文切换
  9. PHPstudy使用教程
  10. 计算机源代码可以用中文吗,为什么很多人说电脑程序不能使用中文呢?
  11. 小米8探索版线刷兼救砖_解账户锁_纯净刷机包_教程
  12. elementUI控制表格样式(表格头、表格行、表格列)
  13. Fedora各个历史版本官方下载地址
  14. Excel交叉引用及其应用实例
  15. Mysql常用类型和字段属性
  16. webservice 暴漏接口_解决java web 项目发布webservice接口
  17. 2019年B2B电商网站开发重点功能全解析!
  18. 若g(x,u,w)为凸,则p(u,w)=inf{x} g(x,u,w)为凸
  19. php写字板代码,Android实现画板、写字板功能(附源码下载)
  20. ChatGPT怎么看?禾赛科技登陆纳斯达克,能否扛起“中概激光雷达第一股”的大旗?...

热门文章

  1. 关于 GBK编码表与编码字库
  2. Android Gallery 3D 特效精华
  3. 杀毒软件 McAfee 创始人狱中身亡,75 年传奇人生画下句号
  4. 动易html编辑器,解决动易后台编辑器(混合模式,编织模式不可用变灰
  5. bios 微星click_微星主板CLICK BIOS II BIOS设置软件下载_微星主板CLICK BIOS II BIOS设置软件官方下载-太平洋下载中心...
  6. 第9章、图像按钮ImageButton(从零开始学Android)
  7. 安全合规/ISO--1--ISO 27000系列标准介绍
  8. 条件语句与循环语句:将数字一二三四五六七八九十转化成汉字大写的壹, 贰,叁,肆,伍,陆,柒,捌,玖,拾
  9. mysql学生管理系统背景_学生基本系统管理
  10. fruit loops studio音乐宿主软件daw水果软件20.9中文版