QT上位机开发(MFC vs QT)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        在qt之前,上位机开发的主要方法就是mfc。后来出现了c#语言之后,上位机的开发就有一部分人转成了c#。这些开发都是在windows平台完成的,而linux上面的界面,则都是通过各种小众库来完成的。自从出现了qt之后,又有很多人转到了qt上面。和其他gui相比较,qt最大的优势就是跨平台。只要调用的是qt类代码,使用的也是boost之类的库,那么基本上不存在跨平台的问题。这一点,对于很多上位机和下位机都需要界面开发的项目来说,就很方便了。

1、编程语言

        从编程语言方面来说,两者都是c/c++,这方面两者都是一样的。只要掌握了基本的c++语法,就可以开始app的开发了。

2、跨平台

        跨平台这方面,那无疑是qt的强项。本来mfc就相当于是微软送的一个框架,因为用单纯的windows api开发上位机实在是太麻烦了。用mfc虽然架构上面麻烦一点,但是好歹可以短时间开发出一个满足要求的上位机出来。而qt一开始的时候,就是面向多平台开发的,所以不管是windows、linux还是mac,都是没有问题的。

3、难易程度

        难易程度其实是相对于框架而言的。mfc的框架基本是app-frame-view-doc的形式。而相对而言qt更自然一点,这方面其实和c# wpf很类似。界面的部分归界面的部分,控制归控制的部分,如果是一般的函数,那就综合成静态库或者是动态库来处理。

4、范例

        在范例这方面,qt本身官方和github上面就有很多的例子可以参考。不夸张的话,很多的功能,如果不太复杂,完全可以直接在示例代码上面修改。而mfc呢,很多时候我们能依靠的就是官方生成的自动代码,不然就是搜索引擎+chatgpt,除此之外的方法并不是很多。

5、美观程度

        虽然mfc也有很多的皮肤可以参考,但是个人观点来说,qt还是更好一点。加上qt有qss的加持,后期优化和改进也更加地方便一点。

6、商业风险

        商业风险来说的话,无疑mfc要小得多。因为对于微软来说,mfc基本上是白送的。所以,在这个平台上开发任何的软件,都是基本上不需要支付费用的。而qt呢,如果是开发开源软件,那么肯定也是不需要支付费用的。但是如果是纯商业软件呢,这就很难说了。

7、工作机会

        如果是从工作机会来说的话,qt的优势还是很大的,不管是windows,还是linux,学习好了c++之后,都可以使用qt在两个平台上面开发软件。这方面mfc就薄弱得多,不光如此,mfc大部分都是老项目、老代码,这不是说不可以做,而是说做的风险很大。

8、软件包安装

        安装qt的话,基本一个软件包就可以解决所有的问题。如果是mingw开发的话,qt里面集成了对应的编译器。如果是用ms2017开发的话,那么需要安装qt-ms版本。而mfc呢,现在已经不集成到开发包里面,需要自己单独安装,这方面也能看出微软的态度了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/409679.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Xilinx K7-410T的高速DAC之AD9129开发笔记(二)

引言:上一篇文章我们简单介绍了AD9129的基础知识,包括芯片的重要特性,外部接口相关的信号特性等。本篇我们重点介绍下项目中FPGA与AD9129互联的原理图设计,包括LVDS IO接口设计、时钟电路以、供电设计以及PCB设计。 LVDS数据接口设…

Jenkins-Maven Git

整合Maven 安装GIT #更新yum sudo yum update #安装git yum install git 安装Maven插件,在插件管理中心: 配置仓库 配置密码认证 我们可以在这个目录下看到Jenkins 帮我们拉取了代码 /env/liyong/data/docker/jenkins_mount/workspace/maven-job 配置maven打包…

IOS-高德地图SDK接入-Swift

申请key 这个要前往高德开发平台注册成为个人开发者然后在控制台创建一个应用: 高德开发平台 注册步骤就不写了,写一下创建应用的步骤: 1、点击应用管理——>我的应用 2、点击右上角的创建新应用 3、输入内容: 4、点击添加ke…

模拟瑞幸小程序购物车

是根据渡一袁老师的大师课写的&#xff0c;如有什么地方存在问题&#xff0c;还请大家指出来哟ど⁰̷̴͈꒨⁰̷̴͈う♡&#xff5e; index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-e…

网页设计(八)HTML5基础与CSS3应用

一、当当网企业用户注册页面设计 当当网企业用户注册页面 改版后当当网企业用户注册页面 <!-- prj_8_1.html --> <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>当当网企业用户注册页面设计</title><s…

ARM day1

一、概念 ARM可以工作的七种模式用户、系统、快中断、中断、管理、终止、未定义ARM核的寄存器个数 37个32位长的寄存器&#xff0c;当前处理器的模式决定着哪组寄存器可操作&#xff0c;且任何模式都可以存取&#xff1a; PC(program counter程序计数器) CPSR(current program…

MySQL-多表联合查询

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

领域驱动设计应用之WebAPI

领域驱动设计应用之WebAPI 此篇文章主要讲述领域驱动设计在WebApi中的应用&#xff0c;以及设计方式&#xff0c;这种设计的原理以及有点。 文章目录 领域驱动设计应用之WebAPI前言一、相对于传统设计模式的有点二、WebAPI对接中的使用案例业务拆分父类设计HttpResponse(返回)…

逻辑回归(解决分类问题)

定义&#xff1a;逻辑回归是一种用于解决分类问题的统计学习方法。它通过对数据进行建模&#xff0c;预测一个事件发生的概率。逻辑回归通常用于二元分类问题&#xff0c;即将数据分为两个类别。它基于线性回归模型&#xff0c;但使用了逻辑函数&#xff08;也称为S形函数&…

BDD(Behavior-Driven Development)行为驱动开发介绍

为什么需要BDD&#xff1f; “开发软件系统最困难的部分就是准确说明开发什么” (“The hardest single part of building a software system is deciding precisely what to build” — No Silver Bullet, Fred Brooks) 。 看一下下面的开发场景&#xff1a; 场景一&#xf…

新书速览|数据科学技术:文本分析和知识图谱

图解数据科学&#xff0c;文本分析、知识图谱详解&#xff0c;实战案例呈现&#xff0c;助你深入理解技术原理&#xff0c;行业应用启发&#xff0c;助力创新发展。 本书内容 数据科学的关键技术包括数据存储计算、数据治理、结构化数据分析、语音分析、视觉分析、文本分析和知…

多维时序 | Matlab实现GRO-CNN-BiLSTM-Attention淘金算法优化卷积神经网络-双向长短期记忆网络结合注意力机制多变量时间序列预测

多维时序 | Matlab实现GRO-CNN-BiLSTM-Attention淘金算法优化卷积神经网络-双向长短期记忆网络结合注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现GRO-CNN-BiLSTM-Attention淘金算法优化卷积神经网络-双向长短期记忆网络结合注意力机制多变量时间序列预测效果一览基…