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。

posted on 2010-07-28 17:22 战魂小筑 阅读(8914) 评论(27)  编辑 收藏 引用 所属分类: 界面 接口 、C++/ 编程语言

评论

# re: C++界面库的抉择 2010-07-28 19:06 GunsNRose
Qt 现在挺不错的,在WIN下也好用,新版的maya要用Qt来开发
现在Qt可以使用LGPL协议来开发,开发商用软件不用怕了  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-28 19:10 老鱼
Qt除了发布时带的DLL大点之外,其它方面完胜各GUI Kit。  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-28 19:23 right
不是说QT的性能差强人意吗?  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-28 20:13 空明流转
我咋觉得你这个比较都说烦了。
不管从哪个平台哪个角度,Qt都绝对是中规中矩的。
如果跨平台,绝对是Qt完胜。  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-28 20:43 yrj
Google Chromium 只用了 WTL 的一点点东西,它有自己的 UI 体系  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-28 23:57 陈梓瀚(vczh)
@空明流转 
只有在少数极端的情况下,你才需要你的GUI程序跨平台。你什么时候看见一个能用的C/C++写的带GUI软件,可以在不用改代码的情况下,两边都编译的。  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-29 08:55 毛毛
试试C++Builder的VCL吧,呵呵  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-29 08:56 战魂小筑
@陈梓瀚(vczh)
跨平台的GUI确实没那么大需求,对于游戏的话,基本做到Windows和Mac已经很不错了  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-29 11:11 空明流转
@陈梓瀚(vczh)
不是极端,而是需要,你就得用,亲爱的。
你只是不需要罢了。不代表别人就不需要。。。  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-29 11:30 老鱼
@right
Qt并不慢,嵌入式都在用。况且就算慢点,恐怕用肉眼跟其它GUI Kit都区分不出来。Qt的图形性能就不说了,Maya看中的就是它。跨平台只是它附加的优点,在Windows下Qt也是最好的GUI Kit之一。并不是简单地要跨平台就Qt,不跨平台就非Qt。通常限制大家选择Qt的几个原因是:
1. 已经学会了其它图形库
2. 要发布小巧的软件,Qt带的DLL太大了
3. 会Qt的人少,招不到人
4. Qt封装层次太高,而软件需要使用很多的平台特性。  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-29 15:51 heguo
如果不怕安装.net4框架 
当然wpf,其余的UI设计和wpf相比不是同一个高度级别的。  回复  更多评论 
  

# re: C++界面库的抉择 2010-07-29 17:25 匿名的懦夫
@陈梓瀚(vczh) 
Firefox?  回复  更多评论 
  

# re: C++界面库的抉择[未登录] 2010-07-29 18:25 姚冬
如果开发语言选择C++的话,QT 无疑是最佳选择。
性能一点都不差,尤其是 GraphicView系统,支持硬件加速哦

跨平台是没得说,PC平台通吃,被Nokia收购后 ,手机平台也占了一半了。

特别是 signal/slot 系统,非常完美的C++下的回调和事件通知架构,MFC的消息映射简直是杯具。

如果说QT有什么缺点,就是运行库有点大,静态链接也有 1.5Mb,动态则接近10M。但是如果你想写个中等规模的软件,比如 2-30万行源代码,那么就不是问题了。QT是更适合写大程序的。  回复  更多评论

# re: C++界面库的抉择[未登录] 2010-07-31 18:46 姚冬
我用我的愚蠢了解QT的特性,谢谢各位  回复  更多评论 
  

# re: C++界面库的抉择[未登录] 2010-07-31 18:48 姚冬
@陈梓瀚(vczh) 
只有在少数极端的情况下,你才需要你的GUI程序跨平台。你什么时候看见一个能用的C/C++写的带GUI软件,可以在不用改代码的情况下,两边都编译的。

严重同意  回复  更多评论

# re: C++界面库的抉择[未登录] 2010-08-01 19:43 kuafoo
GUI 跨平台很没有意思  回复  更多评论 
  

# re: C++界面库的抉择 2010-08-04 09:21 King Qiu
@yrj
同意
  回复  更多评论 
  

# re: C++界面库的抉择 2010-08-04 09:48 Benjamin
应用第一,用过了几个后,你会发现其实实现原理都差不多  回复  更多评论 
  

# re: C++界面库的抉择 2010-08-08 19:15 陈梓瀚(vczh)
@匿名的懦夫 
@空明流转 
一般来说,应该为不同的操作系统设计不同的GUI,这样才能让不同操作系统的用户都能感受到这个软件的便利性。  回复  更多评论 
  

# re: C++界面库的抉择[未登录] 2010-08-26 12:57 Loaden
@陈梓瀚(vczh)
Code::Blocks就是跨平台的,使用wxWidgets库开发。  回复  更多评论 
  

# re: C++界面库的抉择[未登录] 2010-08-26 13:00 Loaden
Qt并不适合个人开发小软件的!
Qt的最大缺点是LGPL无法静态链接。
这样,你只能背着好几十MB的DLL,这样的程序发布出去,打包也要接近10MB。
我想,这是无法让人接受的!  回复  更多评论 
  

# re: C++界面库的抉择 2010-09-17 20:34 侠客西风
以后会有一套非常优秀的
开源的,免费的
全功能媲美商业directui的界面库

已经有好多人研究viksoe的那套界面库了,

做了不少改进

其实想想,如果qq界面库那样的,有一套开源的,

vc做界面的麻烦也不会像现在这么多  回复  更多评论

# re: C++界面库的抉择 2010-10-27 17:36 天下
WIN32API是最基础,是一定得精通的.
MFC是必须掌握的.优点是他的资源多.
看情况你可以选择一个界面库,然后精通.
目前完美的界面库还不存在.
项目上用MFC+Xtreme ToolkitPro 基本搞定一切.
Xtreme ToolkitPro,网上破解一大把. 
带一个专业的设计器,你們看着办吧.

回复  更多评论

# re: C++界面库的抉择 2010-11-24 00:05 null
@陈梓瀚(vczh)

它的意义在于节省开发人员的精力,少学一种技术,额。。。  回复  更多评论

# re: C++界面库的抉择 2011-03-28 23:21 阿布
@姚冬

扯淡,WIN32平台的消息机制哪点悲剧了?不会用就别瞎说。 
signal/slot机制不是回调,也就是信号触发执行某个过程的机制罢了——当然不是用回调,否则跨线程怎么解决?跟消息机制大同小异,看你吹的好像是什么了不起的东西一样。 
qt 值得称道就是就是跨平台而已,其他跟MFC一个层次,别瞎吹嘘了  回复  更多评论

# re: C++界面库的抉择 2012-02-17 14:19 mjy
@姚冬
Qt源码包的QtCreator就能在不更改任何代码的情况下在windows、MacOSX、Linux下完成编译,并且运行正常。  回复  更多评论 
  

# re: C++界面库的抉择 2012-02-27 17:42 marvin
如果使用wpf,倒觉得telerik的控件不错,我用过silverlight版的  回复  更多评论 
  

C++的界面库经过几天来的搜索,总结了下面几种的优缺点相关推荐

  1. 以金山界面库(openkui)为例思考和分析界面库的设计和实现——代码结构(完)

    三年前,准备将金山界面库做一个全面的剖析.后来由于种种原因,这个系列被中断而一直没有更新.时过境迁,现在在windows上从事开发的人员越来越少,关注这块的技术的朋友也很少了.本以为这系列也随着技术的 ...

  2. 以金山界面库(openkui)为例思考和分析界面库的设计和实现——资源读取模块分析

    按照软件的执行流程,我们首先遇到<以金山界面库(openkui)为例思考和分析界面库的设计和实现--问题>中提出的最后一个问题:界面描述文件的放置位置.我们曾提出一种方案:将界面描述文件打 ...

  3. 以金山界面库(openkui)为例思考和分析界面库的设计和实现——问题

    随着物质生活的丰富,人们的精神生活也越来越丰富.人们闲暇的时间也相对变多,于是很多人就开始寻找打发时间的方法.其中电视便是其中一种非常重要的消遣方式.假如我们打开电视机,看到了一个电视台正在播一部我们 ...

  4. 嵌入式python 图形界面_有哪些好的嵌入式操作系统界面库(GUI library)?

    20190809上面答案没提到的,个人认为好用的 1.LittlevGL LittlevGL 是一个开源免费(MIT许可)的GUI,支持触摸屏操作,移植简单方便,开发者一直在不断完善更新.Little ...

  5. Duilib界面库学习笔记

    1.Duilib的下载编译 由于一些事件google无法访问,托管在其上的项目也无法检出也基本无人更新,因此从第三方代码仓库同步下载代码, 地址如下: 1.https://github.com/Cod ...

  6. VC界面库BCGControlBar和Xtreme Toolkit详细对比评测

    概述:如今对软件界面的要求越来越高,如用Delphi.VS2008等开发底层的应用程序时,效率远不如VC++.虽然Visual Studio集成了一些MFC的类库,但是这些只是基础应用,并不能满足大多 ...

  7. 炫彩界面库使用方法问题记录

    1. 'ele_event' : undeclared identifier  'RegisterAll': identifier not found 在使用炫彩界面库时,如果遇到以上错误,一般是由于 ...

  8. 一些界面库比较以及如何选择界面库

    记得很早的时候看了一个哥们写的界面库的使用历程,当时还挺有感触的,不断地尝试,不断地被坑,最后有两条结论: 1.自己积累界面库: 2.买就买贵的.好的,并且提前根据自己需要协商好. 今天又重看关于界面 ...

  9. 初步了解win32界面库DuiLib

    DuiLib是一个开源win32界面库:下载地址:https://github.com/duilib/duilib 可以做类似一些杀毒软件的界面:效果还是比较好: 先下载一个demo看一下: 当前开发 ...

最新文章

  1. JVMTOP JVM 监视工具
  2. ip协议分析实验报告_入门工业通讯之EtherNet/IP协议分析
  3. 小场景带来大提升:“AI之眼”加持工厂品控流水线,质检质量提升80%
  4. .NET 6新特性试用 | LINQ功能改进
  5. Android N 新特性 + APP开发注意事项
  6. 在wp7中读取XML的配置文件,Content与Resource的区别
  7. pip下载慢的解决方法
  8. JMeter Exception: java.net.BindException: Address already in use: connect(转)
  9. HCIE-Security Day31:IPSec:实验(六)配置PPPoE拨号分支与总部建立IPSec隧道示例
  10. C语言基础入门需多久,c语言入门基础知识
  11. Verdi快速使用技巧
  12. PVC地板IMO船舶防火测试认证注意事项
  13. 【SDOI2008】Sandy的卡片 DP
  14. vps、云服务器、虚拟主机
  15. printf(%d%d%d%d\n, a,b,c);
  16. BeanUtils.copyProperties 无法转换数据类型不同的数据
  17. 【课程笔记】李弘毅2020 Deep Learning for Human Language Processing
  18. c语言实数加法程序,蓝桥杯 算法提高 实数相加(c语言版附注释)
  19. matlab中clear的功能,matlab中clc,close,close all,clear,clear all作用区别
  20. 20_django项目的部署和总结

热门文章

  1. YOLOv7|v5|v8改进之损失函数EfficiCIoU-Loss:独家首发最新|结合EfficiCIoULoss损失函数(适用于YOLOv5),新的增强预测帧调整并加快帧回归率,加快网络模型收敛
  2. iOS APP贴牌必备
  3. 阿里蚂蚁金服、蘑菇街、腾讯、去哪儿等实习面试
  4. pycharm格式化代码 常用快捷键
  5. IHE 测试 XDS.b XDS.I 基于openxds实现
  6. 对法向量贴图、置换贴图的理解
  7. 搭建Cydia软件源+制作deb安装包
  8. 用这些渠道玩转淘宝内容营销
  9. Runnable是否可以中断
  10. 【Java -- 算法】分治算法、动态规划、回溯法、贪心算法