Linux下的图形界面编程
一、Qt和GTK+
虽然Linux下的大多数开发是基于字符界面的,但在Linux环境下也可以开发出美观大方的图形界面。经过多年的发展,目前已经存在多种用于在Linux下开发图形界面程序的开发包,其中较为常用的是Qt和GTK+。
Qt是一个跨平台的图形用户界面开发库,它不仅支持Linux操作系统,还支持所有类型的UNIX以及Windows操作系统。Qt良好的封装机制使它模块化程序非常高,可重用性很强,Qt提供了丰富的API供开发人员使用。使用Qt开发的图形用户界面程序具有良好的稳定性和健壮性。桌面环境KDE(K Desktop Environment即K桌面环境)就是使用Qt作为其底层库开发出来的。
由于Qt使用C++面向对象编程语言作为其开发语言,而许多Linux从事开发的程序员更喜欢或更习惯于用C语言。GTK+使用C语言作为开发语言。它基于LGPL授权,因此GTK+是开放源代码而且完全免费的。GTK+简单易用,执行效率高。基于这些原因,GTK+拥有为数众多的拥护者。LInux的桌面环境GNOME就是建立在GTK+基础上。
二、GTK+简介
下图是GTK+在几种相关的开发库中的位置。
Application
GNOME
GTK+
GDK
glib X
C
上图中每层除了与其上下相邻的两层有联系外,似乎与其他层没有关系。实际上,任何上层都可以调用位于它下面的各层提供的函数。例如,GTK+不仅可以调用GDK函数,也可以调用glib和C库函数。
下面