`
halfcool
  • 浏览: 44914 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

[学习笔记]Linux应用程序开发指南:使用GTK+Gnome库-01-Gnome的开发结构

阅读更多
  
       一般用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库》- (1)

    《Linux应用程序开发指南:使用GTK+ GNOME库》是面向Linux平台的应用程序开发人员的一本重要参考书籍,主要讲解如何利用GTK+和GNOME库来构建高效、用户友好的图形界面应用。这篇读书笔记将深入探讨其中的核心概念和...

    GTK+2.0 中文版(基于GNOME官方文档翻译)

    GTK+ 2.0 教程 译者: huzheng,konghui,ferry,carton,yang_yi,ddd,tingle 版本号: V_0.1.0 2002年 6 月25 日 本文是有关通过 C 语言接口使用 GTK ...编写 GTK 应用程序的技巧 投稿 鸣谢 教程的版权和许可声明

    gtk笔记——gtk库介绍

    "GTK+ 库介绍笔记" GTK+ 库是 Linux 平台下最常用的 C 语言函数库,它具有很好的可移植性和实用性。 GTK+ 库是基于 GLib 库的,因此在学习 GTK+ 之前需要先学习 GLib 库的基本知识。 一、GLib 库介绍 GLib 库是 ...

    GTK学习笔记

    GTK,全称 GIMP Toolkit,是一个用于开发图形用户界面的开源工具包,广泛应用于Linux、Unix和其他类UNIX操作系统,同时也支持Windows和Mac OS X。GTK主要用于编写GNOME和XFCE等桌面环境下的应用程序,它的设计理念是...

    Linux精华笔录学习笔记

    1.KDE与GNOME开源项目拥有相同的目标,就是为Linux开发一套高价值的图形操作环境,两者都采用GPL公约发行,不同之处在于KDE基于双重授权的Qt,而GNOME采用遵循 GPL的GTK库开发—后者拥有更广泛的支持; 2.不同的...

    从Windows转向Linux教程E3000基础学习.pdf

    #### 写Linux学习笔记 建议读者在学习过程中记录重要的知识点和实践经验,这有助于巩固所学内容并便于日后查阅。 #### Linux文件系统目录结构简介 这部分内容介绍了Linux文件系统的组织结构,解释了如`/bin`, `/...

    xournal-0.4.8.2016-win32.zip

    - **学习笔记**:学生可以将电子版教材导入Xournal,随时记录课堂笔记和思考。 - **会议记录**:职场人士可以利用它记录会议要点,避免遗漏重要信息。 - **创意绘图**:设计师和艺术家可以借助Xournal快速草图...

    Ubuntu_Linux实用学习教程

    - **安装GTK+ 1.x主题和插件**:对于使用GTK+ 1.x框架的应用程序,如XMMS,可能需要额外安装支持中文显示的GTK+ 1.x主题和插件。 #### 5. 给Firefox安装Flashplayer - **安装Flash插件**:为了确保Firefox能够播放...

    GJITEN, Japanese dictionary for GNOME-开源

    7. **跨平台**:作为开源软件,GJITEN不仅限于GNOME桌面环境,也可以在其他支持GTK+库的操作系统上运行,如Linux发行版、FreeBSD等。 8. **教育与学习工具**:除了基本的查询功能,GJITEN还可以作为学习工具,提供...

    Ubuntu Linux实用学习教程.doc

    Ubuntu Linux实用学习教程 本文档提供了一个详细的 Ubuntu Linux 实用学习教程,涵盖了 Ubuntu 的特点、安装、配置、优化等方面的知识点。 Ubuntu 的特点 Ubuntu 是一个基于 Linux 操作系统的自由开源操作系统,...

Global site tag (gtag.js) - Google Analytics