最近悟空问答上有不少人问,有哪些好用的C++界面库,我是做Windows应用程序开发的,做过很多UI客户端程序,对这一点比较了解,在此结合这些年的开发经验,给大家推荐几款常用的、免费的C++界面库,以供参考。
1、微软的MFC
我刚毕业那会,基本用的都是MFC,感觉相对来说是比较简单的。
对于Windows开发人员,还是要学会使用MFC的,即使商用项目中不使用MFC,但在日常工作中会编写一些测试用的工具,可能会用到的。另外,通过编写MFC代码,也能加深对Windows窗口的绘制机制及消息处理机制的理解。
我们的视频会议+即时聊天项目组在若干年前用的也是MFC,MFC在某些场景下有很大的弊端,比如在实现类似QQ的聊天窗口时,每个控件都是一个实实在在的窗口,每个窗口会用到若干个GDI对象〔用于窗口绘制〕,所以一个聊天窗口可能会用到200多个GDI对象,在测试人员做极限测试时,会打开几十个甚至上百个聊天窗口,这样程序总的GDI对象就会增长到上万个。做Windows程序开发的老程序员应该都知道,如果一个程序的GDI对象达到或接近1万个后,就会导致窗口绘制异常,程序出现崩溃。所以后来我们下决心将MFC替换掉了。当然,除了打开多个窗口会导致程序的总GDI对象达到上万个,程序运行过程中如果有GDI对象泄露,也会导致GDI对象不断增长。
2、跨平台的QT
Qt Creator是一个用于QT开发的轻量级跨平台集成开发环境,它提供首个专为支持跨平台开发而设计的集成开发环境,并确保首次接触QT框架的开发人员能迅速上手和操作。另外,包含了一套用于创建和测试基于QT应用程序的高效工具。
QT开源 区活跃、官方资料众多,可以尝试着去学一学。
如果你开发的界面程序要支持跨平台,QT是个不错的选择。现在很多视频监控厂商(比如海康威视和大华)都采用QT来开发他们的UI客户端应用程序,因为他们既要支持Windows系统,也要支持在Linux国产化系统上运行。
国家近几年一直在推国产化系统,比如以前的中标麒麟系统、银河麒麟系统,都是基于Linux深度改造优化的操作系统。现在两家公司合并了,推出了UOS统一操作系统,我们公司也于去年开发了跑在这些国产化Linux的视频会议软件,使用就是QT界面库。
3、免费开源的Duilib
Duilib是一个Windows下基于DirectUI技术的免费开源界面库。DirectUI技术和思想是由微软提出来的,并广泛的应用到微软的产品中。大家熟知的MSN Messager聊天软件的界面就是使用DirectUI实现的。
Duilib也是国内首个开源的DirectUI界面库,被众多知名软件广泛使用。Duilib界面库使用XML来描述界面风格和界面布局,可以很方便的构建高效绚丽的、非常易于扩展的界面,从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。 上关于Duilib界面库的资料和demo代码越来越多,有兴趣的可以学习一下。
现在很多大公司也在使用这个界面库,比如百度云管家(百度 盘)、爱奇艺PPS客户端、微信PC客户端、拼多多PC客户端、ZOOM视频会议客户端、Kugou音乐、酷我音乐盒、2345好压压缩软件等。他们在使用这个界面库后,对这个界面库做了深度改造和优化。QQ现在的界面也是基于DirectUI思想设计的。
我们公司的多个软件产品也在用这个界面库,当然我们做了很多改进。
其他界面库
除了上面讲到的三种常见的免费界面库之外,还有一些其他的免费的或收费的界面库。比如支持类似于微软office 界面风格的BCGControlBar界面库,VS2008开始微软在MFC中引入了BCG的部分界面,效果还不错,以前的软件中用过。还有WTL、WPF、Skin++、SOUI、LibUISDK、DSkinLite、wxWidgets等。这些界面库也有相关的资料、教程和demo代码,介绍的都比较详细,有兴趣的话,可以去看一下。
最后希望以上分享的内容能对你有所帮助,也欢迎大家留言、评论进行补充,也可以和我在线交流。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!