原本由於項目需求在 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對象名為app 18 int app_status; //用於拿到app 運行結束后的返回值 19 20 app = gtk_application_new("org.rain.gtk" , G_APPLICATION_FLAGS_NONE); //創建一個application 21 g_signal_connect(app , "activate" , G_CALLBACK(activate) , NULL); //連接信號,初始化app時,調用 activate 函數 22 app_status = g_application_run(G_APPLICATION(app) , argc , argv); //運行app 23 24 g_object_unref(app); //銷毀app 25 26 return app_status; 27 }
如下方式編譯源文件,並執行生成的example可執行文件。
gcc example.c `pkg-config --cflags --libs gtk+-3.0` -Wall -o example ./example
運行結果如下: