数据加载中……

[转]wxWidgets和QT之间的选择

wxWidgets和QT之间的选择 

    跨平台的C++ GUI工具库很多,可是应用广泛的也就那么几个,Qt、wxWidgets便是其中的翘楚。
    这里把GTK+排除在外,以C实现面向对象,上手相当困难,而且Windows平台下执行相当慢且不稳定。

    Qt和wxWidgets各有各的优点,也各有各的缺点,各有各的适合应用点。
    工作环境和爱好限制,个人曾经分别使用过Qt和wxWidgets,
    到现在,就个人而言,选择在一般程序方向采用wxWidgets,在手机应用程序方向采用Qt。

    先说版权:
    Qt,是芬兰的TrollTech公司研发的,现在属于Nokia,一直奉行的是双LICENSE策略,一个是商业版,一个是免费版:
    商业版的LICENSE就不说了,免费版的LICENSE,4.5版本之前一直采用GPL,意味着采用Qt的程序要么是商业软件,要么就是GPL软件,
    这就造成了虽然出了个著名的KDE,可惜应用范围还是受限,否则的话,应用应该更广阔点;
    不过还好,Nokia收购了之后意识到这个问题,4.5版本之后采用了LGPL,其他开发人员可以发布基于免费Qt库连接的商业软件了。
    wxWidgets,一直奉行的是LGPL LICENSE。

    再评评各自的优缺点:
    Qt,一直以来开发公司作为商业公司进行运作,以客户需求为目标,提供了一系列完整的文档和RAD工具,并提供最为完整的平台支持;
    对开发人员而言,Qt库本身,也是所有的GUI工具库中最为面向对象化的,同时也是最为稳定的。
    罗列一下:
    Qt的优点:
        1. 支持的平台最多
        2. 商业化支持
        3. 完整的文档和RAD工具
        4. 最为面向对象
        5. 世界上最为成功的手机厂商支撑,对于移动终端的支持最为完善
    Qt的缺点:
        1. 使用的是非标准C++
        2. 每个平台不是"Native GUI"
        3. 过于庞大且运行缓慢
        4. 与其它库不是很兼容(主要是STL之类的兼容问题)
        5. 基本只能使用特定的qmake工具(其它工具经过良好的修改也可以,不过相当于重新编写一个qmake,是否值得)

    wxWidgets,一直以来的LGPL发布,相当开放,积累了相当一部分研究用户,与现有各类工具库无缝连接地非常好;
    同时可惜的是没有非常强大的正规商业化运作,可靠性、资源丰富性远比不上Qt。
    还是罗列一下:
    wxWidgets的优点:
        1. 开放,对于各类第三方库的良好兼容(TAO工具中的Naming_Service Viewer就是采用wxWidgets的)
        2. 支持各平台的"Native GUI"
        3. 虽然有庞大的库,运行效果极为显著
        4. 对各类现有工具的支持(笔者就采用MPC一站式产生所有项目的编译工程)
        5. 偏MFC,对于Windows平台MFC程序的跨平台迁移,具有天然的优势
        6. XRC,则提供了代码和设计分离的便利,程序员专注整体开发,UI设计群体则提供运行期界面、多语言版本支持功能等
    wxWidgets的缺点:
        1. 由于是偏MFC,则面向对象封装做得不是非常好
        2. 相对缺乏的文档、资源
        3. 缺乏很好的商业化支持,如果商业软件出问题需要支持,稍微麻烦点

    总之:
        在采用第三方工具库的复杂PC应用环境,有一定的底子,wxWidgets是不二的选择
        在只需采用Qt单一工具库的应用环境,Qt是个不错的选择;特别是类似于手机这种嵌入式设备环境,由于Nokia的加入,Qt更值得一用。 
 
 
 

posted on 2010-10-23 20:13 Stone xin 阅读(5828) 评论(2)  编辑 收藏 引用

评论

# re: [转]wxWidgets和QT之间的选择  回复  更多评论   

个人对于wxWidgets和Qt的看法是:
1、对于图形化处理Qt占有很大的优势,有很多可以直接拿来用的东西。
比如图表系统可以用QtPlot;图元可以直接用QGraphics View Framework,效率比自己来控制每个图元要方便的多,QCad是个不错的例子可以学习。
还有很多开源的丰富多彩的控件及效果,都是wxWidgets无法比拟的。
在这些方面wxWidgets相对来说有些不足。
2、但wxWidgets相对来说比较小巧,效率也很不错,也是标准的c++,也可以通过它来自定义很多有用的控件,还有个wxCode库,里面也有N多有用的东西来参考。
3、对于移动设备来说,wxWidgets和Qt之间我还是选择Qt,wxWidgets支持的平台相对来说没有那么全。

2011-07-01 10:17 | xinst

# re: [转]wxWidgets和QT之间的选择  回复  更多评论   

Qt绘图效率要比wxWidgets高,虽然不是Native GUI,但可能在实现方面对图形刷新效率考虑的最为充分。
我比较过,绘制625x23639像素的流程图,鼠标滚动时,Qt刷新非常流畅,wxWidgets则顿挫,同时存在线条中断,闪烁现象。
2012-04-11 17:05 | allenchen

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理