Linux 下從頭再走 GTK+-3.0 (一),gtk-3.0
原本由於項目需求在 Linux 下學習過一段時間的 GTK+2.0 圖形開發,時隔一段時間,想真正深入學習一下 GTK 。
這次直接從頭學習 GTK+-3.0 ,並寫下博文便於日後查看,也方便新手入門。
安裝環境參考:
Fedora:http://www.cnblogs.com/watsonlong/archive/2011/04/06/2006989.html
Ubuntu:http://www.cnblogs.com/niocai/archive/2011/07/15/2107472.html
Arch :直接執行 sudo pacman -S gtk3 即可。
注意採用的是GTK3,上文中大部分是GTK2,注意同樣的方式安裝GTK3。
首先學習到的便是建立一個空白的視窗。我們建立一個名為 example.c 的源檔案。內容如下
1 #include <gtk/gtk.h> //每個GTK程式都要包含的標頭檔,裡面申明了很多類型,函數原型等 2 3 static void activate (GtkApplication *app , gpointer data) 4 { 5 GtkWidget *window; //申明一個視窗 6 7 window = gtk_application_window_new(app); //為app建立一個視窗 8 9 gtk_window_set_title(GTK_WINDOW(window) , "Application"); //設定視窗的標題10 gtk_window_set_default_size(GTK_WINDOW(window) , 200 , 200); //設定視窗預設大小為長寬各200像素11 gtk_widget_show_all(window); //顯示視窗12 }13 14 15 int main(int argc , char **argv) //主函數16 {17 GtkApplication *app; //申明建立一個 GtkApplicatin對象名為app18 int app_status; //用於拿到app 運行結束後的傳回值19 20 app = gtk_application_new("org.rain.gtk" , G_APPLICATION_FLAGS_NONE); //建立一個application21 g_signal_connect(app , "activate" , G_CALLBACK(activate) , NULL); //串連訊號,初始化app時,調用 activate 函數22 app_status = g_application_run(G_APPLICATION(app) , argc , argv); //運行app23 24 g_object_unref(app); //銷毀app25 26 return app_status;27 }
如下方式編譯源檔案,並執行產生的example可執行檔。
gcc example.c `pkg-config --cflags --libs gtk+-3.0` -Wall -o example./example
運行結果如下: