人文艺术 > 请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?

请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?

2020-10-23 00:34阅读(61)

请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?:我是从MFC做二维图形CAD起步的。后来C#。回到你的问题,具体看做什么类型的应用,还有就是你能把握的技

1

我是从MFC做二维图形CAD起步的。后来C#。回到你的问题,具体看做什么类型的应用,还有就是你能把握的技术栈是什么。简单的图形界面,C#最快,开发成本最低,其实我也用C#做过图形图像应用程序,优化一下,性能也马马虎虎。如果追求性能,MFC肯定是首选,缺点就是代码量巨大。再说QT,QT是个万金油,提供了不少方便的类库,还跨平台。如果做三维应用,首选推荐QT。

总之用什么工具还是综合评估,技术人员能力构成,应用场景,开发成本等。举个例子的话,Windows上工控,管理软件,C#不犹豫。追求图形性能,计算性能,网络性能,C++。三维,跨平台,QT。为什么最后推荐qt,不是因为qt不好,是玩qt的人比较少。

2

选择MFC、Qt还是C#开发界面,主要取决于你的技术栈,如果你对界面要求高,追求快速开发,但是对程序性能要求一般,可以试试C#。

如果对程序性能要求较高,且有一定的C++基础,可以考虑QT或其他C++界面库,比如Duilib这样的第三方库。下面简单介绍下C++界面开发过程中常用库

1、QT

跨平台图形用户界面应用程序开发框架,C++开发首选界面库,除了界面之外,还封装了一整套多线程、数据库访问、图像处理、音频视频处理、网络通信、文件操作等常用框架。官方文档齐全、API设计优雅、跨平台支持、对新手友好。


新版本的QT提供的QSS技术,可以让我们在客户端开发过程中享受Web开发中CSS绘制界面的便利,例如下图是使用QT提供的QSS技术绘制的客户端UI界面换肤图(图片来源:CSDN博主一去、二三里)!

2、第三方界面库(以Duilib为例)

这里以Duilib为例(当然C++还有很多其他优秀的界面库,比如BCG)。

Duilib采用XML来描述界面风格和布局,将界面和逻辑分离,尽量减少在代码中创建UI控件。可让开发人员快速开发出美观的界面效果图,是一款开源的directUI界面库。目前很多的互联网PC端软件都是使用Duilib开发而来,比如: 钉钉、PP助手、微信、网易云信、TeamTalk、盘古越狱工具等。


下图是使用Duilib开发的模仿迅雷播放器开发的一款效果图。

唯一的缺点就是文档太少,duilib最初的开发人员目前也已经不在维护了,个人在使用过程中可能会遭遇各种坑,而各大公司都是在维护自己内部使用的duilib。

3、MFC

早在很多年前,业界就流传MFC已经被淘汰了 ,MFC==没饭吃,可是直到2020年的今天,这家伙居然还没有灭绝,甚至在招聘网站上也依稀可见MFC的岗位需求。但是不得不承认,但是不得不承认,它的学习成本实在太高了,如果想实现一些特效,难度还是比较大的。如果你的需求对界面要求不高,或者是做一些自用的小工具,选择MFC还是很不错的,其他情况下,不建议选择它。


其实,桌面开发,选择Electron(一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架)也是一个很好的选择。

3

做windows桌面应用当然是c#。

c#是.net框架下主力语言,与windows系统的集成度很高,win7,win8,win10都自带.net框架,根本就不需要什么依赖,c#语言目前已经更新到8.0版本,采用vs来开发桌面程序简直太完美,不管是winform还是wpf这两个都是一二十年很成熟的桌面程序框架,拖拖控件就能开发,效率高。wpf自定义程度高,可以设计出精美的ui界面来,一点不输web界面,而且还有配套的bland设计器来辅助做ui界面。

目前winform,wpf这两个桌面框架都已经支出.netcore,这是一个新出的垮平台框架,所以我觉得做桌面开发c#是首选。

以上我的看法,大家有什么想法也可以一起讨论。

4

qt好些吧,C#涉及微软.net体积巨大。qt就几个dll,打个安装包都容易些。还有就是qt跨平台,小到ARM版,大到Windows,linux电脑都可以跑。MFC微软自己都不玩了,难用,bug多。

5

Delphi C++Builder 做人机界面最好。

小型数据库就用Firebird 。

图形图像处理实际上都是调用Windows API实现。

三维图形用OpenGL编程。

6

没有说那个更好,只能说更合适吧!

首先,个人觉得QT比较适合做桌面应用程序开发,像一些大型杀毒软件基本都是QT开发的,比如:360安全卫士,360杀毒,金山毒霸等等!

其次,当然C#也是可以做的,MFC就太老了基本很少用了,许多界面开发都得自绘,现成的类或者JDK比较少,所以用的人比较少,当然在医疗类软件用的多些,比如:多参数医疗监控等,QT开发是用的C++,不管从性能还是效率都比较高的,而且QT实现了界面开发跟业务处理逻辑是分开的,能开发出非常漂亮的桌面程序!

最后,说一下QR开发的优势所在之处,1、QT开发具有跨平台性

这样开发出来的应用程序就可以在多端运行了,避免重复轮胎的情况,比如:windows平台,Linux平台,Mac平台等

2、QT本身具有非常好的处理机制,让界面编程变得更加组件化

QT的类库非常丰富,有成千上万的API使用非常方便。个人观点仅供参考,欢迎指正![耶]

7

首先我想说的是不管是mfc、qt、c#这个需要根据技术、性能、开发周期、开发成本决定的。

1.mfc语言出来的时间比较早,界面开发需要用代码自绘来实现,对开发者技术开发功底要求比较高,开发周期长,性能比较高;

2.qt开发用的是c++语言,我们知道一些杀毒软件360系列就是用qt开发的,性能比较高,开发周期开发成本介于mfc和c#之间,而且可以跨平台;

3.c#语言可以开发winform和wpf桌面程序,他们可以用设计器进行界面的布局和设计,开发周期和开发成本较低,性能没有mfc和qt高,对开发者技术要求没有前两者高。

最后我想说的不管选哪种开发语言都是基于你的项目需求,团队人员的技术,以及开发成本和开发周期决定的。

8

想快,就qt 可移植性强,运行效率的保障和超级强大的支持库。如果不是很急,学习为主,那建议用c++ win32 k 慢慢实现自己的一套ui库

9

如果对性能要求很高可以使用mfc和qt,如果对现代化页面展示要求高,又希望快速开发可以使用wpf或winform,也就是使用c.#