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更值得一用。

 

2010-05-25 07:50:09 分类: linux、FreeBSD等

你可能感兴趣的:(mfc,FreeBSD,qt,工具,Nokia,平台)