Linux 下從頭再走 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對象名為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

  運行結果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM