Linux下的圖形用戶界面編程

 
一、Qt和GTK+
雖然Linux下的大多數開發是基於字符界面的,但在Linux環境下也可以開發出美觀大方的圖形界面。經過多年的發展,目前已經存在多種用於在Linux下開發圖形界面程序的開發包,其中較爲常用的是Qt和GTK+。
Qt是一個跨平臺的圖形用戶界面開發庫,它不僅支持Linux操作系統,還支持所有類型的UNIX以及Windows操作系統。Qt良好的封裝機制使它模塊化程序非常高,可重用性很強,Qt提供了豐富的API供開發人員使用。使用Qt開發的圖形用戶界面程序具有良好的穩定性和健壯性。桌面環境KDE(K Desktop Environment即K桌面環境)就是使用Qt作爲其底層庫開發出來的。
由於Qt使用C++面向對象編程語言作爲其開發語言,而許多Linux從事開發的程序員更喜歡或更習慣於用C語言。GTK+使用C語言作爲開發語言。它基於LGPL授權,因此GTK+是開放源代碼而且完全免費的。GTK+簡單易用,執行效率高。基於這些原因,GTK+擁有爲數衆多的擁護者。LInux的桌面環境GNOME就是建立在GTK+基礎上。
二、GTK+簡介
下圖是GTK+在幾種相關的開發庫中的位置。
Application
GNOME
GTK+
GDK
   glib X
   C
上圖中每層除了與其上下相鄰的兩層有聯繫外,似乎與其他層沒有關係。實際上,任何上層都可以調用位於它下面的各層提供的函數。例如,GTK+不僅可以調用GDK函數,也可以調用glib和C庫函數。
下面按層作簡單的介紹,具體說明如下:
層    具體描述
C    有兩類C庫函數可供調用,一類是標準C的庫函數,如printf,scanf;另一類是
                    Linux的系統調用,如open,read,write,fork
glib               glib是GDK、GTK+、GNOME應用程序常用的庫。它包含內存分配、字符串操
                    作、日期和時間、定時器等庫函數,也包括鏈表、隊列、樹等數據結構相關的工
                   具函數
X                 它是控制圖形顯示的底層函數庫,包括所有的窗口顯示函數、響應鼠標和鍵盤操
                   作的函數
GDK             GDK(GIMP繪圖包)是爲了簡化程序員使用X函數庫而開發的。X庫是其低層函
                    數庫,GDK對其進行了封裝,從而使程序員的開發效率大爲提高。
GTK+           GTK+就是GIMP工具包,它把GDK提供的函數組織成對象,使用C語言模擬出
                    面對象的特徵,這使得用它開發出來的圖形界面程序更爲簡單和高效。GTK+的
                    一個重要組成部分是widget(控件,也稱爲小部件),按鈕、文本編輯框、標
                    籤等都是widget
GNOME        GNOME庫是對GTK+的擴展,GNOME桌面環境用來控制整個桌面。GNOME
                  使用GNOME對象和函數與桌面小部件交互,基本小部件由GTK+處理。GNOME
                    爲了方便程序員還增加了一些專門的小部件。
Application   Application即應用程序,它完成窗口的初始化,創建並顯示窗口,進入消息循
                    環,等待用戶使用鼠標或鍵盤進行操作。

    簡單地說,GTK+就是用C語言編寫的用於開發圖形界面程序的函數庫。GTK+來源於GIMP(GNU Image Minipulation Program,即GNU圖像處理程序)。GTK+在GDK(GIMP Drawing Kit,即GIMP繪圖包)基礎上創建,對它進行封裝。GTK+簡單易用,它設計良好,靈活而富有擴展性。它是自由軟件,這意味着被它不僅開放源代碼,而且還可以免費使用。由於它使用C語言作爲其開發語言,而C語言是跨平臺的,因此GTK+幾乎可以在任何操作系統上使用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章