跨平台软件开发图形界面的选择

Posted: 八月 2nd, 2009 | Views: 3,296 次浏览 | 1 Comment »

软件开发中总免不了使用图形界面GUI,平常我们使用VC、VB、Delphi等集成开发环境就能轻松实现,但实现细节被隐藏,不利于定制,更加无法移植到其它操作系统。本文主要讨论了能助你实现跨平台软件的图形界面库。

标题中提到的跨平台包含两个概念:一是跨软件平台,开发的一套软件既想在Windows上运行,又想在Linux上运行;二是跨硬件平台,就是嵌入式软件开发中在各个硬件平台间的移植,因此,文中介绍的GUI也分为两个部分。

本文对图形界面开发库作一个罗列,简单介绍各个库之间的特点和应用,详细的实现细节以及技术特点大家可以参考网上其它文章。

跨软件平台的图形界面开发库。此类库主要应用于X86平台的基于操作系统的软件开发,我们平常写程序希望既能在Window下可以使用,在Linux、Mac等平台也可以使用,应当使用这些开发库,它们都需要调用操作系统的API。

MFC。这是Visual C++使用的一个开发库,应用相当广泛,但是只能在Win下使用,据说在跨平台版本,但费用相当高。

JAVA。以“一次开发,到处运行”著称,使用虚拟原理,在每个平台上要安装一个Runtime环境来实现跨系统,但其运行效率也是一直以来被人垢病的缺点,而且需要使用一门全新的编程语言。

QT。非常强大的GUI库,应用十分广泛,而且有很多IDE支持,KDE、Opera等很多大型项目都是基于它实现的,但使用前你需要先确认下它的授权协议。

GTK+。与QT平行,功能同样非常强大,GNOME、Firefox、Wireshark都是基于它实现的,能很好的实现本地化(在Linux下使用Linux主题的样式,在Win在使用Win的主题),而且它没有QT那样烦人的授权协议。

wxWidgets。相比以上重量级的,它精简了不少,应用也是相当广泛,但好像完善性有待考量,看网上评价,好像有莫名其妙的问题出现,开源的FTP工具FileZilla就是使用它来实现的。

FLTK。更加轻量级,不适合繁杂图形界面,而且对字符集的支持有先天缺限,如果开发功能主导的、体积要求比较小的软件,可以考虑使用它。

TK。其实它只能算是一种脚本语言,在各平台上安装了运行环境后,可以使用简单的图形界面,一般不推荐使用。

对于该类图形开发库推荐两篇文章写得相当详细:

wxWidgets与其他工具库的比较(上)

wxWidgets与其他工具库的比较(下)

跨硬件平台的图形界面开发库。该类开发库一般应用于ARM、PowerPC等嵌入式系统开发中需要图形界面进行人机交互的场合,一般要求GUI不能过多依赖操作系统,一般由驱动层实现了画点、输入函数后,其它的都交由开发库来实现,如画按钮、标题栏等。

QT/E。全称Qt/Embedded,明显是用于嵌入式系统的,功能相当强大,当然也是所有GUI是体积最大的一个,推荐系统资源宽裕的时候使用,跟前面一样要考虑许可证的问题。

MiniGUI。功能、体积都稍逊前者,但许可证问题好像稍微好一点,一般嵌入式系统使用的工具的授权协议都比较严格,都是用来赚钱的,开发、学习用好像是免费的。

uC/GUI。Micrium公司开发的,与uC/OS同门,相比前两者,它要算是最精简的了,不过实现的组件也不弱,以前使用过,可以运行在无操作系统状态,上手非常快。

以上只是作者对于各个工具的一个初步印象,没有应用经验,表达难免空洞,只想给大家作个介绍,起一个抛砖引玉的作用。

Filed under: 学习分享 | Tags: ,

One Comment on “跨平台软件开发图形界面的选择”

  1. 匿名 说道:

    我是来顶贴的。。。


Leave a Reply

  • Name
  • Mail (will not be published)
  • Website
Page 1 of 11