02.26 有什么开源免费库做桌面界面的吗,在用MFC,麻烦,我做工业软件二次开发的?

数学基础


其实用c++开发界面程序,基本上都很麻烦。MFC还算历经考验的,有些开源的,不出问题还好,一出问题,查找原因麻烦的一比。当然关键还是看您的功能需求,如果没有太多花哨的界面要求,mfc其实足矣,而且各种案例还特别多


羊羊羊146777668


下面说说自己身边从事PC客户端开发同事用过的界面库。

1、Duilib

我们先来看看官方对其介绍:

Windows下免费开源的DirectUI界面库,由于简约易扩展的设计以及稳定高效的实现被各大互联网公司普遍接受,广泛应用于包括IM、视频客户端、股票行情软件、导航软件、手机辅助软件、安全软件等多个行业的众多pc客户端软件。

下面是一张使用duilib开发的仿360的界面效果图:

目前最火的「微信」、「钉钉」,在Windows客户端的开发中,也采用了Duilib。


那么使用有什么注意点呢?一定要注意目前官方已经不再提供维护,各大公司都是自己内部维护一份,所以可能会遇到不少的坑点。

2、BCG

大名鼎鼎的MFC界面库,可以完美的兼容MFC项目,使用它可以很方便的完成项目的换肤,尤其是表格控件很强大,新版本的对office的支持也不错。更多的介绍可以参考官方网站。

3、QT

没错,就是QT,它可以和MFC混合编程的,最重要的是QT不仅比MFC简单,更重要的是他要比MFC强大,目前我司的产品遗留代码,已经在原有MFC的基础上,一步步的替换到QT(PS :目前 感觉比较混搭,不太协调),下面是使用QT提供的QSS技术开发的一张UI效果图,还是比较绚丽的。(图片来源:CSDN博主一去、二三里,如有侵权,请联系删除)

目前的QT已经越来越强大了,国产化当头,相信其市场会更加广阔,如果从事PC客户端开发,为了个人走的更远,为了升职加薪,还是建议掌握QT!


一个程序员的奋斗史


选择QT,为什么选择QT?

  1. 主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MFC的界面库代码也是比较混乱,qt有qss样式设计这个功能。当项目移植到到QT后,MFC相对于QT缺点实在太多。当然MFC还有一个致命的缺陷,没法跨平台。
  2. 有同学可能说为什么不直接使用C# WPF做界面,一些项目和工具确实是用C#做的,C#和C++也确实可以互相调用,并且可以断点调试。但在性能上还是有不少的损失。对于音视频和三维仿真项目确实有影响,所以只在一些对性能没有极致要求的项目中使用C#。

QT突出的优势:

  1. Qt 是基于 C++ 的一种语言扩展(Extention)

C/C++ 目前还是一种很多人都在学习的语言. Qt的好处就在于Qt本身可以被称作是一种 C++ 的延伸。Qt 的类都是用 C++ 写出来的。这也就是说, Qt 本身已经继承了C++的快速、简易、面向对象等许多的优点。

2. Qt 具有非常好的可移植性(Portable)

Qt不只是可以在 Linux 中运行,也同样可以运行在 Microsoft Windows 、Mac OS X等多种不同的平台中。这也意味者,利用 Qt编写出来的应用程序,在几乎不用修改的情况下,就可以同时在多种平台中运行。 Qt的应用非常之广泛,从 Linux到 Windows ,从 x86 到 Embedded 等都有大量Qt应用的成功范例。

3. Qt支持跨平台构建(Cross-Platform Builds)

编写用于多平台的软件是单调乏味的,且可能随时出现错误。维护编制文件更是如此,尤其是当不同的编译器和平台组合需要若干个编制文件时。通过qmake工具,Qt能够很好地面对这一挑战。这个工具可以为目标平台生成准确无误的编制文件。

4. Qt是开源软件(Open Source)

Qt产品提供的是采用双重授权的软件许可模式。在该双重授权模式下,Qt产品不仅可在获得商业许可下针对专利软件开发,而且还可以在GPL(通用公共许可证,版本2或版本3)下用于开发免费和开源软件。

5. Qt架构健壮,性能强大(powerful)

Qt 已由成千上万商业与开放源应用程序员,在多个操作系统与编译器上进行了测试,奠定了高性能应用程序的基础。

此外,Qt运行时无需依赖“虚拟器”,模拟层或大容量的运行时间环境。它如本地化的应用程序一样,能够直接写入低级的图形函数,因而使用Qt开发的应用程序能以源代码速度执行。

6. Qt使用起来简便高效(concise)

Qt统一的跨平台API 让程序员们集中精力致力于可增值的技术革新,而无须担心维护和管理现有应用程序多版本的基础结构与界面。 因此Qt开发人员仅需要学会一种API来写入应用程序,该程序便可在任何地方运行。

Qt Software投入了相当大的努力使得Qt使用起来尽可能简单和直观。来自世界各地的客户反馈普遍认为Qt编程简单而有趣;而对于商务应用而言,Qt可以转换为更多的功能,并且在保持质量性能的情况下,只需更少的维护工作。

总之,Qt可以跨平台、不依赖虚拟机机制,速度和性能不会比同类型的Java, .NET(C#)差,这就是程序员选择Qt的最直接的理由了。


三年起步


MFC,应该是Windows平台一个比较老的C++框架了,开发桌面界面的确有些费力,这里介绍3个简单易学的C++开源、免费桌面框架或库,分别是Qt,wxWidgets和Duilib,感兴趣的朋友可以尝试一下:

01

Qt

这是当前一个非常流行的桌面应用程序开发框架,免费、开源、跨平台,基于C++语言开发而来,著名的KDE桌面就采用这个框架,自带有可视化设计界面,内置了大量组件和容器,只需简单拖拽、编辑属性就可快速设计UI界面,支持CSS美化,相比较MFC来说,操作简单,易学易懂,官方资料丰富,社区活跃,非常值得学习和使用:

02

wxWidgets

这是一个非常著名的跨平台界面开发库,也是基于C++开发,不管私用还是商用,都完全免费,与Qt设计不同(仿平台外观),wxWidgets完全使用平台库创建图形接口,不需要在代码上添加额外层,因此更高效快捷,社区资料和官方文档同样丰富,如果你本书熟悉C++,有一定基础的话,学习起来会非常迅速:

03

Duilib

这是早期Windows平台下一个非常不错的轻量级C++界面开发库,完全免费、开源,可以看作是MFC的替代品,基于xml定制窗口,自主可控,能较好的做到UI界面和处理逻辑相分离,因此开发效率更高,也更易维护,可以轻松实现大多数界面需求,包括换肤、换色、透明等,支持多种图片格式,对于软件界面开发来说,非常不错,不过现在已经停止更新和维护,只保持基本功能:

目前,就分享这3个不错的C++界面框架或库吧,可以看作是MFC的替代品,只要你有一定C++基础,熟悉一下相关示例和代码,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。


小小猿爱嘻嘻


如果不想付授权费又不想开源又不想给公司惹来麻烦,不要用QT!

如果只是Windows平台用,那用C#来写什么WPF啦,WinForm啦绝对又快又好。如果LINUX平台用,GTK3是首选


手机用户76216957678


做工业软件,就不要追求好看的界面了,好看是好看,影响性能。省下的CPU时间能干很多更重要的事,比如数据采集,分析,通信。实在要做,就用一些开源的类了,C#千万别用


夏日风41


你如果学的c++,建议使用qt界面库,这个现在是主流。,并且是跨平台的,学习这个界面库也很快,先熟悉。MFC这个库有点过时了, 除了一些老的设备获取是以前比较老的开发者,工业控制领域,他们还在坚守,我们这些年轻人,早都已经用了QT来开发。

MVS 使用qt开发


MVViewer使用QT开发

qt能够做出很好地效果。


机器视觉工程师


MFC+BCGPControlbar+measurement studio绝对没错,别信什么c#,delphi,electron遇到性能问题你没有办法解决,delphi虽然性能可以,可是平台兼容性太差,有的第三方组件竟然连串口通信都做不好,不要相信什么快速方便,小软件还行,遇到刁钻的客户让你做出好用点的界面,delphi就是地狱,提供了便利但是也套了枷锁,除非你对delphi框架特别了解


阿廖70088832


跨平台且通用的我觉得是gtk,事实上gnome就是gtk开发的。我司一直使用gtk+2做系统界面,编译完的程序3.6M,飞快无比。


冯迅


可选择的很多啊,使用QT,或者WPF,CEF3也可以,界面技术用过不少,这两年一直使用CEF3,界面想要啥效果就能做出啥效果…


分享到:


相關文章: