一般用GTK代表软件包和共享库,用Gtk+代表GTK的图形构件集。
在用Gtk+开发Gnome的过程中,由于实际需要,在上面的构件基础上,又开发了一些新构件。一般把这些构件称为Gnome构件(与Gtk+构件相对应)。这些构件都是Gtk+构件库的补充,它们提供了许多Gtk+构件没有的功能。从本质上来说, Gtk+构件和Gnome构件是完全类似的东西。
1、Gnome的开发结构
只使用Gtk+构件也可以开发出优秀的Linux应用程序,但是Gnome构件,特别是GnomeApp、GnomeUIInfo等,使开发界面一致的应用程序变得更加容易。Gnome的一些新特性,如popt参数分析,保存应用程序设置等也是Gtk+构件所没有的。
Gnome差不多对任何语言都提供了Gnome API接口,其中包括Ada、Scheme、Python、Perl、Tom、Eiffel、Dylan以及Objective C等。至少有三种不同的C++封装。
Gnome的开发架构包含以下一些内容:
(1)非Gnome库
Glib Glib是Gnome的基础,它是一个C工具库,提供了创建和操作常用数据结构的实用函数。
Gtk+ Gtk+(GIMP Toolkit的缩写),是在Gnome应用程序中使用的GUI工具包。Gtk+依赖于glib。Gtk+包中包含了Gdk,它是对底层的X Window系统库Xlib的简化。由于Gtk+使用了Gdk而不是直接调用Xlib,因此Gdk的移植版本允许Gtk+运行在不同于X但只有相对较少的修改的窗口系统上。
对Gnome应用程序来说,Gtk+具有以下的特性:
1) 动态类型系统。
2) 用C语言编写的对象系统,可实现继承、类型检验,以及信号/回调函数的基础结构。
3) 类型和对象系统不是特别针对GUI的。
4) GtkWidget对象使用对象系统,它定义了Gtk+的图形组件的使用接口。
5) 大量的GtkWidget子类(构件)。
ORBit ORBit是一个用C开发的CORBA 2.2O RB。ORBit是以一整套库函数的方式实现的。ORBA,或称作通用对象请求中介构架(Common Object Request Broker Architecture),是一套对象请求中介,或称为ORB的规范。
Imlib Imlib (图片库)提供一些例程,其中包括加载、存储、显示,以及定绘制各种流行的图像格式(包括GIF、JPEG、PNG以及TIFF)的函数。它包括两种版本:Xlib-only版本和基于Gdk的版本。Gnome使用Gdk版本。
(2)Gnome库
下面所介绍的库是Gnome-libs包的一部分,并且是专门为Gnome项目开发的。
libgnome libgnome是一些与图形用户接口无关的函数集合,它包含分析配置文件的代码,也包含与一些外部实用程序的接口,比如国际化编程接口(通过GNU gettext 包)、变量解析(通过popt包)、声音编程接口(通过EnlightenmentDaemon,esound)等。
libgnomeui libgnomeui包含了与GUI相关的Gnome代码。libgnomeui主要包含:
1)GnomeApp构件一般用来为应用程序创建主窗口。它使用GnomeDock构件,允许用户重新排列工具栏,还可以将工具条从窗口上拖开。
2)GnomeCanvas构件用来编写复杂的、无闪烁的定制构件。
3) Gnome 内置的pixmap(包括打开、关闭、保存以及其他操作的图标) 用于创建和使用对话框的例程。GnomePixmap构件比GtkPixmap功能更多。
libgnomeui中还有几种其他构件,如GnomeEntry、GnomeFilePicker等。
libgnorba libgnorba提供与CORBA相关的实用程序,包括安全机制和对象激活。
libzvt 这个库包含一个终端构件(ZvtTerm ),可以在Gnome程序中使用它。
libart_lgp 这个库包含由Raph Levien编写的图形绘制例程。实质上它是一个矢量图形光栅图形库,功能类似于PostScript语言。
(3)其他库
这些库一般使用在Gnome应用程序中,但它不是Gnome-libs 专属的部分。
Gnome-print
Gnome-xml 由WWW协会的Daniel Veillard编写。它能按照树状结构分析XML,也能按照XML输出树状结构。这个库不依赖于任何其他的库(甚至glib),所以它只是在名义上是一个Gnome库。
Guile Guile是Scheme编程语言在一个库中的实现,它使任何应用程序都能带有一个嵌入式的Sheme解释器。
Bonobo Bonobo是一种对象嵌入式结构,类似于Microsoft的OLE。任何应用程序将能通过适当的Bonobo组件调用Gnome库,显示MIME类型数据,例如纯文本、HTML或图像。
如果用C++语言开发基于Gtk+应用程序,可以使用一个名为Gtk--的函数库,它是GTK工具包的C++风格的封装。
分享到:
相关推荐
《Linux应用程序开发指南:使用GTK+ GNOME库》是面向Linux平台的应用程序开发人员的一本重要参考书籍,主要讲解如何利用GTK+和GNOME库来构建高效、用户友好的图形界面应用。这篇读书笔记将深入探讨其中的核心概念和...
GTK+ 2.0 教程 译者: huzheng,konghui,ferry,carton,yang_yi,ddd,tingle 版本号: V_0.1.0 2002年 6 月25 日 本文是有关通过 C 语言接口使用 GTK ...编写 GTK 应用程序的技巧 投稿 鸣谢 教程的版权和许可声明
"GTK+ 库介绍笔记" GTK+ 库是 Linux 平台下最常用的 C 语言函数库,它具有很好的可移植性和实用性。 GTK+ 库是基于 GLib 库的,因此在学习 GTK+ 之前需要先学习 GLib 库的基本知识。 一、GLib 库介绍 GLib 库是 ...
GTK,全称 GIMP Toolkit,是一个用于开发图形用户界面的开源工具包,广泛应用于Linux、Unix和其他类UNIX操作系统,同时也支持Windows和Mac OS X。GTK主要用于编写GNOME和XFCE等桌面环境下的应用程序,它的设计理念是...
1.KDE与GNOME开源项目拥有相同的目标,就是为Linux开发一套高价值的图形操作环境,两者都采用GPL公约发行,不同之处在于KDE基于双重授权的Qt,而GNOME采用遵循 GPL的GTK库开发—后者拥有更广泛的支持; 2.不同的...
#### 写Linux学习笔记 建议读者在学习过程中记录重要的知识点和实践经验,这有助于巩固所学内容并便于日后查阅。 #### Linux文件系统目录结构简介 这部分内容介绍了Linux文件系统的组织结构,解释了如`/bin`, `/...
- **学习笔记**:学生可以将电子版教材导入Xournal,随时记录课堂笔记和思考。 - **会议记录**:职场人士可以利用它记录会议要点,避免遗漏重要信息。 - **创意绘图**:设计师和艺术家可以借助Xournal快速草图...
- **安装GTK+ 1.x主题和插件**:对于使用GTK+ 1.x框架的应用程序,如XMMS,可能需要额外安装支持中文显示的GTK+ 1.x主题和插件。 #### 5. 给Firefox安装Flashplayer - **安装Flash插件**:为了确保Firefox能够播放...
通过本资料的学习,您可以掌握嵌入式系统的概念、应用场景、ARM架构的基础知识、Exynos 4412 SoC的特性和使用方法、开发环境的搭建步骤以及具体的开发流程和技术细节。这不仅有助于初学者快速入门嵌入式开发领域,也...
7. **跨平台**:作为开源软件,GJITEN不仅限于GNOME桌面环境,也可以在其他支持GTK+库的操作系统上运行,如Linux发行版、FreeBSD等。 8. **教育与学习工具**:除了基本的查询功能,GJITEN还可以作为学习工具,提供...
Ubuntu Linux实用学习教程 本文档提供了一个详细的 Ubuntu Linux 实用学习教程,涵盖了 Ubuntu 的特点、安装、配置、优化等方面的知识点。 Ubuntu 的特点 Ubuntu 是一个基于 Linux 操作系统的自由开源操作系统,...