Xlib、Xt(X Toolkit Intrinsics)、Qt等的關係

來源:互聯網
上載者:User

Intrinsics 又名Xt 或 X Toolkit, 是X Window 的函式庫。

Intrinsics 首先提供物件導向的程式設計架構,並引進了“widget”的概念。Motif、OpenLook 和 Lesstif 等即以 Xt 為基礎。Athena Toolkit 也是衍生自 Xt Library。

但一些知名的工具箱如 FLTK、GTK 和 Qt 並不使用 Xt library,反是直接使用 Xlib。

 

 

 

什麼是Xlib?

 

The X Library是X Window程式最低階的API,如果拿來和Windows 比較起來,Xlib 就和Windows APIs(或稱 Windows SDK)一樣,算是最接近 X Server的程式設計介面,它只提供最基本的繪圖和訊息事件的處理。

 

 

什麼是Xt?(X Toolkit Intrinsics
Xt 是第一個把Xlib封裝成更抽象化的函式庫,它提供了「物件導向」的程式設計架構,並且引進了一種稱為「widget」的概念,這種「widget」資料 結構也就是所謂的「User Interface Componets」像是menus、buttons或是TextBox等widgets。從此以後程式設計師就可以用widget的觀念,來架構我們的 應用程式,讓程式變得簡單且容易瞭解。  
不過Xt只定義了應用程式要如何和這些 widgets 溝通,並沒有規定這些 widgets 的外觀要長甚麼模樣。這些widgets真正的樣子最後還是得靠更高層的函式庫來處理。(通常提供 widgets 的函式庫,我們就稱之為GUI Toolkit(X ToolKits)。
Motif、OpenLook 和 Lesstif 等便都是從 Xt Library 衍生而來的圖形介面函式庫

  

 

Motif  
Motif 為目前最主要的 GUI Toolkit,它便是以Xt的widget 概念為基礎,提供外觀和Microsoft Windows 95極為類似的圖形介面。Motif 是由 Open Group (以前叫 Open Software Foundation) 所出產。 
不過現在的 Motif 已經不只是單純的GUI Toolkit了,它也包含了一個Motif window manager(視窗管理器)用來管理X Clients (X Applications)。

 

 

什麼是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 (GNU Network Object Model Environment)是以GTK為基礎的圖形介面函式庫。和KDE一樣,GNOME 也是以建立一個完整、友善的圖形使用環境為目標,並提供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.