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。

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版的   回复   更多评论 
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值