C++的界面库经过几天来的搜索,总结了下面几种的优缺点
C++的界面库经过几天来的搜索,总结了下面几种的优缺点
1. MFC
优点:VS2008以及VS2010的扩展确实很强大,特别是原生的窗口运行时停靠以及PropertyGrid确实很强大
缺点:默认字体很模糊,无论你对MFC多了解,C++多熟悉,每次写代码时依然要重新熟悉代码,更不用提分析别人写的MFC代码,一个字:乱。
2. WTL
优点:Windows下有个最好的例子:Google Chrome
缺点:缺乏设计器,文档例子很少
3. wxWidgets
优点:虚幻3编辑器在用(不是广告),wxAUI的布局设计器很方便,Windows原生界面很舒服,各种功能封装都很到位。
缺点:布局没有类似GTK+的Fixed绝对坐标方式(Windows SDK默认的左上角像素定位方式),在某些界面显得设计麻烦。 动态链接库多的吓人,工程过于臃肿。
4. Qt, GTK+
据说Windows下不是很好用。
5. DirectUI
有很多个人封装类似功能的库。界面,代码分离, 但99%都是收费
6. C# Windows Form
这是很好的选择,语言方面可以用C++/CLI 免得转换语言
自由停靠功能可以使用WeiFenLuo.winFormsUI.Docking 非常简单
7. WPF
有童鞋已经使用MFC/C++通过加载XML显示界面,不过通过资料显示,WPF的控件很少,甚至连原生的PropertyGrid都没有,设计器倒是很华丽
总结:界面库的选择最重要的一点就是看有没有很好的设计器,这个是高效开发的重中之重。我尊重MFC,敬仰MFC,它作为C++的框架库来说很不错,但是对于界面设计还是过老了。我们开发的是产品,出的是程序,而不是研究MFC,怎样用好MFC。
评论
现在Qt可以使用LGPL协议来开发,开发商用软件不用怕了 回复 更多评论
不管从哪个平台哪个角度,Qt都绝对是中规中矩的。
如果跨平台,绝对是Qt完胜。 回复 更多评论
只有在少数极端的情况下,你才需要你的GUI程序跨平台。你什么时候看见一个能用的C/C++写的带GUI软件,可以在不用改代码的情况下,两边都编译的。 回复 更多评论
跨平台的GUI确实没那么大需求,对于游戏的话,基本做到Windows和Mac已经很不错了 回复 更多评论
不是极端,而是需要,你就得用,亲爱的。
你只是不需要罢了。不代表别人就不需要。。。 回复 更多评论
Qt并不慢,嵌入式都在用。况且就算慢点,恐怕用肉眼跟其它GUI Kit都区分不出来。Qt的图形性能就不说了,Maya看中的就是它。跨平台只是它附加的优点,在Windows下Qt也是最好的GUI Kit之一。并不是简单地要跨平台就Qt,不跨平台就非Qt。通常限制大家选择Qt的几个原因是:
1. 已经学会了其它图形库
2. 要发布小巧的软件,Qt带的DLL太大了
3. 会Qt的人少,招不到人
4. Qt封装层次太高,而软件需要使用很多的平台特性。 回复 更多评论
当然wpf,其余的UI设计和wpf相比不是同一个高度级别的。 回复 更多评论
Firefox? 回复 更多评论
性能一点都不差,尤其是 GraphicView系统,支持硬件加速哦
跨平台是没得说,PC平台通吃,被Nokia收购后 ,手机平台也占了一半了。
特别是 signal/slot 系统,非常完美的C++下的回调和事件通知架构,MFC的消息映射简直是杯具。
如果说QT有什么缺点,就是运行库有点大,静态链接也有 1.5Mb,动态则接近10M。但是如果你想写个中等规模的软件,比如 2-30万行源代码,那么就不是问题了。QT是更适合写大程序的。 回复 更多评论
只有在少数极端的情况下,你才需要你的GUI程序跨平台。你什么时候看见一个能用的C/C++写的带GUI软件,可以在不用改代码的情况下,两边都编译的。
严重同意 回复 更多评论
同意
回复 更多评论
@空明流转
一般来说,应该为不同的操作系统设计不同的GUI,这样才能让不同操作系统的用户都能感受到这个软件的便利性。 回复 更多评论
Code::Blocks就是跨平台的,使用wxWidgets库开发。 回复 更多评论
Qt的最大缺点是LGPL无法静态链接。
这样,你只能背着好几十MB的DLL,这样的程序发布出去,打包也要接近10MB。
我想,这是无法让人接受的! 回复 更多评论
开源的,免费的
全功能媲美商业directui的界面库
已经有好多人研究viksoe的那套界面库了,
做了不少改进
其实想想,如果qq界面库那样的,有一套开源的,
vc做界面的麻烦也不会像现在这么多 回复 更多评论
MFC是必须掌握的.优点是他的资源多.
看情况你可以选择一个界面库,然后精通.
目前完美的界面库还不存在.
项目上用MFC+Xtreme ToolkitPro 基本搞定一切.
Xtreme ToolkitPro,网上破解一大把.
带一个专业的设计器,你們看着办吧.
回复 更多评论
它的意义在于节省开发人员的精力,少学一种技术,额。。。 回复 更多评论
扯淡,WIN32平台的消息机制哪点悲剧了?不会用就别瞎说。
signal/slot机制不是回调,也就是信号触发执行某个过程的机制罢了——当然不是用回调,否则跨线程怎么解决?跟消息机制大同小异,看你吹的好像是什么了不起的东西一样。
qt 值得称道就是就是跨平台而已,其他跟MFC一个层次,别瞎吹嘘了 回复 更多评论
Qt源码包的QtCreator就能在不更改任何代码的情况下在windows、MacOSX、Linux下完成编译,并且运行正常。 回复 更多评论
C++的界面库经过几天来的搜索,总结了下面几种的优缺点相关推荐
- 以金山界面库(openkui)为例思考和分析界面库的设计和实现——代码结构(完)
三年前,准备将金山界面库做一个全面的剖析.后来由于种种原因,这个系列被中断而一直没有更新.时过境迁,现在在windows上从事开发的人员越来越少,关注这块的技术的朋友也很少了.本以为这系列也随着技术的 ...
- 以金山界面库(openkui)为例思考和分析界面库的设计和实现——资源读取模块分析
按照软件的执行流程,我们首先遇到<以金山界面库(openkui)为例思考和分析界面库的设计和实现--问题>中提出的最后一个问题:界面描述文件的放置位置.我们曾提出一种方案:将界面描述文件打 ...
- 以金山界面库(openkui)为例思考和分析界面库的设计和实现——问题
随着物质生活的丰富,人们的精神生活也越来越丰富.人们闲暇的时间也相对变多,于是很多人就开始寻找打发时间的方法.其中电视便是其中一种非常重要的消遣方式.假如我们打开电视机,看到了一个电视台正在播一部我们 ...
- 嵌入式python 图形界面_有哪些好的嵌入式操作系统界面库(GUI library)?
20190809上面答案没提到的,个人认为好用的 1.LittlevGL LittlevGL 是一个开源免费(MIT许可)的GUI,支持触摸屏操作,移植简单方便,开发者一直在不断完善更新.Little ...
- Duilib界面库学习笔记
1.Duilib的下载编译 由于一些事件google无法访问,托管在其上的项目也无法检出也基本无人更新,因此从第三方代码仓库同步下载代码, 地址如下: 1.https://github.com/Cod ...
- VC界面库BCGControlBar和Xtreme Toolkit详细对比评测
概述:如今对软件界面的要求越来越高,如用Delphi.VS2008等开发底层的应用程序时,效率远不如VC++.虽然Visual Studio集成了一些MFC的类库,但是这些只是基础应用,并不能满足大多 ...
- 炫彩界面库使用方法问题记录
1. 'ele_event' : undeclared identifier 'RegisterAll': identifier not found 在使用炫彩界面库时,如果遇到以上错误,一般是由于 ...
- 一些界面库比较以及如何选择界面库
记得很早的时候看了一个哥们写的界面库的使用历程,当时还挺有感触的,不断地尝试,不断地被坑,最后有两条结论: 1.自己积累界面库: 2.买就买贵的.好的,并且提前根据自己需要协商好. 今天又重看关于界面 ...
- 初步了解win32界面库DuiLib
DuiLib是一个开源win32界面库:下载地址:https://github.com/duilib/duilib 可以做类似一些杀毒软件的界面:效果还是比较好: 先下载一个demo看一下: 当前开发 ...
最新文章
- JVMTOP JVM 监视工具
- ip协议分析实验报告_入门工业通讯之EtherNet/IP协议分析
- 小场景带来大提升:“AI之眼”加持工厂品控流水线,质检质量提升80%
- .NET 6新特性试用 | LINQ功能改进
- Android N 新特性 + APP开发注意事项
- 在wp7中读取XML的配置文件,Content与Resource的区别
- pip下载慢的解决方法
- JMeter Exception: java.net.BindException: Address already in use: connect(转)
- HCIE-Security Day31:IPSec:实验(六)配置PPPoE拨号分支与总部建立IPSec隧道示例
- C语言基础入门需多久,c语言入门基础知识
- Verdi快速使用技巧
- PVC地板IMO船舶防火测试认证注意事项
- 【SDOI2008】Sandy的卡片 DP
- vps、云服务器、虚拟主机
- printf(%d%d%d%d\n, a,b,c);
- BeanUtils.copyProperties 无法转换数据类型不同的数据
- 【课程笔记】李弘毅2020 Deep Learning for Human Language Processing
- c语言实数加法程序,蓝桥杯 算法提高 实数相加(c语言版附注释)
- matlab中clear的功能,matlab中clc,close,close all,clear,clear all作用区别
- 20_django项目的部署和总结
热门文章
- YOLOv7|v5|v8改进之损失函数EfficiCIoU-Loss:独家首发最新|结合EfficiCIoULoss损失函数(适用于YOLOv5),新的增强预测帧调整并加快帧回归率,加快网络模型收敛
- iOS APP贴牌必备
- 阿里蚂蚁金服、蘑菇街、腾讯、去哪儿等实习面试
- pycharm格式化代码 常用快捷键
- IHE 测试 XDS.b XDS.I 基于openxds实现
- 对法向量贴图、置换贴图的理解
- 搭建Cydia软件源+制作deb安装包
- 用这些渠道玩转淘宝内容营销
- Runnable是否可以中断
- 【Java -- 算法】分治算法、动态规划、回溯法、贪心算法