http://blog.chinaunix.net/u/22935/showart_305786.html
一、初始化GTK+
寫GTK+程式需要調用gtk_init函數對GTK+ 庫函數進行初始化。
1.
名稱:: |
gtk_init |
功能: |
初始化GTK+庫 |
標頭檔: |
#include <gtk/gtk.h> |
函數原形: |
void gtk_init(int *argc,char ***argv); |
參數: |
argc 指向主函數argc的指標 argv 指向主函數argv的指標 |
傳回值: |
無 |
在你程式使用到GTK+工具庫之前,必須對它進行初始化。gtk_init可以初始化GTK+工具庫。gtk_init的參數的指向主函數argc,argv的指標,它可以改變一些不滿足GTK+函數要求的命令列參數。
因為gtk_init函數沒有傳回值,所以如果在初始化過程中發生錯誤程式就會立即退出。
2.
名稱:: |
gtk_init_check |
功能: |
初始化GTK+庫 |
標頭檔: |
#include <gtk/gtk.h> |
函數原形: |
gboolean gtk_init_check(int *argc,char ***argv); |
參數: |
argc 指向主函數argc的指標 argv 指向主函數argv的指標 |
傳回值: |
成功返回TURE,出錯返回FALSE。 |
還有一個GTK+庫初始化函數gtk_init_check,它的作用和gtk_init完全相同。唯一的區別是gtk_init_check有傳回值,可以判斷初始化是否成功。
二、建立視窗
GTK+的構件是GUI的組成部分。視窗、檢查框、按鈕和編輯欄位都屬於構件。通常將構件和視窗定義為指向GtkWidget結構的指標。在GTK+中,GtkWidget是用於所有構件和視窗的通用資料類型。
GTK+ 庫進行初始化後,大多數應用建立一個主視窗。在GTK+中,主視窗常常被稱為頂層視窗。頂層視窗不被包含在任何其他視窗內,所以它沒有上層視窗。在GTK+ 中,構件具有父子關係,其中父構件是容器,而子構件則是包含在容器中的構件。頂層視窗沒有父視窗,但可能 成為其他構件的容器。
在GTK+中建立構件分兩步:建立構件,然後使它可以看得見。gtk_window_new函數負責建立視窗。gtk_widget_show函數負責使它成為可見。
2.
名稱:: |
gtk_window_new |
功能: |
建立視窗 |
標頭檔: |
#include <gtk/gtk.h> |
函數原形: |
GtkWidget * gtk_window_new( |
參數: |
|
傳回值: |
|
3.
名稱:: |
gtk_widget_show |
功能: |
顯示視窗 |
標頭檔: |
#include <gtk/gtk.h> |
函數原形: |
gtk_widget_show( GtkWidget *window) |
參數: |
|
傳回值: |
|
三、GTK+的事件迴圈
對GTK+進行初始化並將視窗和構件置於螢幕以後,程式就調用get_main函數等待某種事件的執行。
4.
名稱:: |
gtk_main |
功能: |
等待事件的發生 |
標頭檔: |
#include <gtk/gtk.h> |
函數原形: |
void gtk_main(void); |
參數: |
無 |
傳回值: |
無 |
我們在來看看第一章的程式。也許大家就會理解上面函數的作用了。
/*base1.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 base1 base1.c 'pkg-config --cflags --libs gtk+-2.0'
$./base1
程式開始定義了一個表單,然後用函數gtk_init初始化GTK+庫。用函數gtk_window_new建立一個表單,用get_widget_show顯示該表單。程式最後調用gtk_main()進入主迴圈,等待各種事件的發生.
注意該程式不能正常退出,原因是程式沒有回呼函數。關於回呼函數我們將會在下面介紹。
四、結束應用程式
5.
名稱:: |
gtk_main_quit |
功能: |
結束應用程式 |
標頭檔: |
#include <gtk/gtk.h> |
函數原形: |
void gtk_main_quit(void); |
參數: |
無 |
傳回值: |
無 |
gtk_main_quit函數可以結束程式 ,它通常在回呼函數中被調用。下面我們介紹回呼函數。