GTK+圖形化應用程式開發學習筆記(一)—概述
一、什麼是GNOME、
GNOME的意思是“GNU Network Object Model Environment”(GNU網路物件模型環境),是Linux世界令人激動的軟體開發成果。雖然它的名字比較長,但這個軟體項目的目的卻很簡單,那就是實現一個永恒友好的、功能強大的使用者和開發案頭環境,而這一環境又完全是以免費的開原始碼軟體為基礎的。
正像它名字的那樣,GNOME既是一個案頭,也是一個完整的程式設計環境。GNOME是底層X視窗系統和高層管理器軟體中間的一個程式設計介面,它向GUI程式員提供了豐富的功能和強大的開發工具,這些工具是傳統意義上的Linux所缺乏的。
二、什麼是GIMP、GTK+
GNOME中的基本工具包是GTK+(即GIMP工具包),它最初是為了簡化GIMP的開發工作而編寫出來的。
GIMP是UNIX類作業系統上的影像處理常式。GIMP是通用影像處理常式或者GNU影像處理常式的縮寫。它的功能類似Windows的Photoshop。
GTK+是一個效能優異的、物件導向的、跨平台的、不依賴於具體語言的開發套件,在GNOME出現之前就已經大量地用來開發各種軟體程式了。GTK+能夠支援許多程式設計語言,其中包括C、C++、TOM、PERL、Python、GUILE、ADA等。
三、GTK+使用的庫
GTK+使用GLIB庫和GDK(GIMP Drawing
Kit,GIMP繪圖工具包)系列的開發庫,GLIB定義了資料類型,提供了錯誤處理和記憶體管理方面的函數;而GDK則是本地圖形化API和GTK+中間的一個過渡層,它需要依賴具體的電腦平台。因此,向其他電腦平台上移植GTK+只需要重新編寫GDK。
四、GTK+的安裝
一般來說最新的Redhat完整安裝就帶GTK+工具庫了。大家直接可以在上面開發程式。如果當前系統沒有GTK+工具庫,可以到www.gtk.org.下載源碼安裝。具體安裝方法可以。參見CU上的GTK+
2.0安裝的文章,這裡不再敘述。
檢驗系統GTK+ 2.0的方法是
$ pkg-config --modversion gtk+-2.0
五、使用GTK+工具集編寫程式
下面就是一個簡單的使用GTK+庫編寫的程式,目的是讓大家體驗到GTK+編程的樂趣。
/*base.c*/ #include <gtk/gtk.h> int main(int argc, char* argv[]) { GtkWidget *window; gtk_init(&argc,&argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_show(window); gtk_main(); return FALSE; } |
下面我們編譯它:
$ gcc -o base base.c 'pkg-config --cflags --libs gtk+-2.0'
要注意的是pkg-config --cflags --libs gtk+-2.0旁邊兩個像單引號的東西其實不是單引號,它是數字鍵1左邊的符號。大家一定要注意。如果用單引號編譯器會提示你pkg-config
--cflags --libs gtk+-2.0沒有那個檔案或目錄。
下面我們來運行:
$./base
程式運行後會出現一個名字為base表單。
大家可以感覺到GTK+ 程式和普通的C語言程式沒什麼差別,它只不過是調用了GTK+工具庫。