[學習筆記]Linux應用程式開發指南:使用GTK+Gnome庫-01-Gnome的開發結構

來源:互聯網
上載者:User
  

       一般用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++風格的封裝。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.