当前位置:C++技术网 > 资讯 > 客户端开发使用的主流界面库的综合功能对比

客户端开发使用的主流界面库的综合功能对比

更新时间:2017-05-02 14:33:00浏览次数:1+次

        之前搜集到一份客户端GUI开发的各种界面库的功能详细对比图,很详细,所以还是整理出来,以免丢失了。

        各种界面库的功能详细对比图如下所示:

    各种界面库的功能详细对比图

    各种界面库的功能详细对比图,点击图片查看大图】

        从10个方面进行对比,分别是接口设计、界面编辑器、高级布局功能、平面绘制、平台兼容性、语言支持、IDE兼容、视图模型分离机制、运行时库支持、协议。当然,还有其他的界面库没有列进来,因为这个资料也是比较早的了。WPF比Windows Form的界面漂亮多了,各方面支持都比forms好,都是微软的。duilib界面库作者没有维护,所以也就不怎么流行了。

        几个比较的指标我简单的解释下,好于不好,各有各的选择。

    1.接口设计

        接口设计说的是,我们在做界面开发时,我们如何与界面库进行互动。界面库提供什么样的方式,让我们开发人员可以参与界面的定制开发,也就是常说的接口。通过这个接口,我们可以实现自己定义的界面效果。主要有代码中直接干涉界面的方法属性模型(可以直接将界面当做一个对象,然后调用各种属性就可以快速修改界面,如VB、C#、WPF)、通过虚函数重载的函数调用系统API来修改界面(需要写很多代码,控制界面麻烦,如MFC、WTL)、使用回调函数让用户函数进行界面的绘制(如wxWidget)和基于信号槽机制进行用户界面的绘制(如QT、GTK+)。

    2.界面编辑器

        界面编辑器也就是可视化编辑界面的支持。基于方法属性模型的C#界面编辑器就和代码中修改属性差不多,非常方便,界面编辑器支持的非常好,对界面的定制可以很丰富。而MFC和WTL则是基于资源编辑器,可以进行界面的可视化编辑,但是功能有限,对界面的更多的控制依赖于代码实现。QT和GTK+有完善的界面编辑工具,其他的连界面编辑工具都不完善。

    3.高级布局功能

        高级布局一般是提到的水平布局、垂直布局等等,也就是可以按照一个布局的序列自动排序界面元素,而不需要一个个的指定,这样让界面布局变得更加方便。而MFC为代表的则都需要自己手动指定界面的布局,没有高级布局,很原始。

    4.平面绘制

        平面绘制指的是界面绘制使用的是什么的绘图技术支持。在系统层面,越偏于底层的,当然绘图效率越高。不过对于开发层面,越偏于上层的,开发效率越高,而且更加美观,毕竟都是优化好的。GDI是绘图效率最高的,但是绘图效果不尽如意,而GDI+兼具效率和绘图效果,是非常不错的。不过对于开发,效率还是低于其他的,毕竟人家的界面库对基础的绘图都支持的非常好,所以上层不会让你直接去调用底层的绘图。

    5.平台兼容

        平台兼容指的是多平台的代码的兼容性。后三个是跨平台的界面库,从绘图技术实现上,我们都看到的是界面库自己提供的绘图支持,而不是直接使用系统的绘图支持。牺牲了绘图效率,得到了跨平台的特性。

    6.语言支持

        语言支持就不用细说了。

    7.IDE兼容

        如果说IDE,就数VS最强大最牛逼了。有的界面库仅仅是界面库而已。

    8.视图-模型分离

        视图模型分离指的是界面与代码的分离。如果界面和代码混在一起,会让代码比较混乱,而且功能代码和界面整在一起,不好进行分工合作。如果界面和代码分离,美工可以方便的进行设计实现,而工程师可以放心的实现功能。最后将界面和功能合在一起,功能强大而且美观。视图部分指的是界面部分,模型部分指的是功能代码部分。

    9.运行时库支持

        运行时库则是界面库的基本支持,界面库本身需要运行,自然需要对应的运行时库的支持。不要说MFC运行时还需要自带MFC的运行时库,哪个库运行时不需要带自己的一套支持呢?最好的是能直接使用系统的库,这样负担就最小,不需要额外安装运行时库。

    10.使用的协议

        使用的协议说的是界面库是开源免费的还是商业使用的。