GTK
天下维客,你可以修改的网络知识库
| 返回到编程条目↑ |
GTK+最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件,并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。
目录 |
编程语言
GTK+使用C语言开发,但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有Ada、 D、 Haskell、PHP和所有的.NET编程语言。
与其他很多部件工具箱不同,GTK+并不基于Xt。这一决策优劣互见:优点是GTK+可以应用于其他系统,其灵活性也很强;而缺点就是它无法利用以传统方法为X11定制的X资源数据库。
Glade是一个界面设计工具,但是它也包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件,而使用Glade生成编程语言源代码的做法或许多少有些过时了。
外观和感觉
提供不同的显示引擎使得最终用户可以定制外观和感觉。目前已经有一些可以模仿其他流行的平台或者工具箱(例如Windows 95、Motif、Qt或者NEXTSTEP)的引擎。
使用GTK的环境
- GNOME是以GTK+为基础,就是说为GNOME编写的程序使用GTK+做为其工具箱。
- Xfce也基于GTK+, 但是他的应用程序并不对很多其他程序有依赖. (这就是"GNOME程序" 和"GTK+程序"的不同。)
- GPE Palmtop环境和Nokia的互联网平板电脑的框架Maemo基于GTK+。
这只是一部分,另外GTK+也可以运行在KDE这样的环境下。而且GTK+也可以在Microsoft Windows运行,另外还有DirectFB和ncurses。
图形无关代码
最初GTK+包括一些和图形无关的常规功能,如链表和二叉树等数据结构。这些基本功能和对象系统GObject已经合并到独立的库Glib,它被程序员专门用于开发不需要图形界面的代码。
GTK+ 2
2002年3月11日,GTK+2.0版正式发布。GTK+ 2是GTK+后继版本,其新特性包括使用Pango改进的文本渲染、新主题引擎、使用ATK改进的可达性、完全转换到使用UTF-8的Unicode和更灵活的API。但是它和GTK+ 1不完全兼容,因此必须由程序员做移植工作。由于GTK+ 1更快、相对更简单或更加适合嵌入式应用,所以还被继续使用。
从GTK+ 2的2.8版起,它依靠库Cairo完成渲染,而这引入了矢量图形的支持。
发展
Ridley项目正在尝试统一一系列和GTK+相关的库,包括libgnome、libgnomeui、libgnomeprint、libgnomeprintui、libglade、libgnomecanvas、libegg、libeel和gtkglext。
参见
外部资料
- GTK官方主页(英文)
- 一个GTK中文社区
- GtkAda, an Ada API to GTK+
- gtkmm, a C++ API to GTK+
- Gtk2-Perl, a Perl API to GTK+ 2.x
- Gtk2Hs, a Haskell API to GTK+
- GTK+ Forum - an unofficial forum archiving all GTK mailing lists.
- Runtime for Windows and package for Dev-Cpp


