GTK、GDK、GLIB三者的關係

來源:互聯網
上載者:User
什麼是GDK?
      GDK是標準Xlib函數調用的一個基本封裝(wrapper),如果你對Xlib很熟悉,就不需要來重新熟悉絕大多數的GDK函數.所有的函數都是為了提供一個方便直觀的風格來訪問Xlib函數庫.另外,自從GDK使用GLib,在多平台上使用時,GDK變得更加的方便和安全.

什麼是GLib? 
     GLib庫提供了一系列函數(functions)和定義(definitions),在設計GDK和GTK程式時很有用.它提供了一些標準c函數庫(standard libc)的替代函數,比如malloc,但在其他的系統上使用時有很多問題.

什麼是GTK+?

        GTK+是一個小型而高效的控制項陳列庫,具有Motif的外觀和風格.實際上,它比Motif看起來好多了,它包含有基本的控制項和一些很複雜的的控制項:例如檔案選擇、控制項和顏色選擇控制項. GTK+提供了一些獨特的特性,(至少,我知道其他的控制項陳列庫不提供他們),例如,按鈕不提供標籤,它包含了一個子控制項,在很多的時候是一個標籤,但是,這個子控制項也可以是一個映射,映像或者任何其他的程式員想要的集合.在整個的庫中,你隨處可見這種伸縮性.

        Gnome的開發基礎結構是圍繞一組函數庫的,所有的內容都是用可移植的ANSI C語言寫成的,可以用於所有類UNIX系統,與圖形相關的函數庫依賴於X Window系統。 Gnome函數庫是最高層的。GTK+由兩部分組成,GTK和GDK。 GTK層為C語言提供了一個物件模型,並為UI工具包提供了最基本的widget,它是上層GUI派生的基礎。 GTK是依賴於GDK的,GDK是Xlib的一個底層封裝,Xlib庫直接與X伺服器對話。 除了Xlib以外的任何部分都是基於GLib的,它是一個有用的C函數庫,提供了很多公用程式和可移植的功能以及一組容易被C語言使用的容器。

       一個Gnome程式使用多個庫組成的階層: 
       Gnome庫在最高層,包括協助常式,類和特殊的widget,並為應用程式提供一個基礎架構。
       第二層是GTK,它是GTK+庫的一部分。這個庫提供了基本的工具包和widget來建立GUI應用程式。大多數GUI是直接用GTK編寫的。GTK同時為Gnome庫提供了一個功能強大的對象系統。 
       再下一層是GDK,它簡單的對X函數庫進行了封裝,只有在我們進行特殊繪畫或設定視窗的特殊屬性的時候才會用到它. 
       最下面一層是Glib,它是C的一個公用程式庫,包括可移植性和一些公用程式功能,以及一些容器類,例如:鏈表,可變數組,變長字串,HASH(貌似是哈西表),緩衝,一個事件迴圈和其他有用的結構



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.