一、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+幾乎可以在任何操作系統上使用。 |
Linux下的圖形用戶界面編程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.