linux下c圖形化編程之gtk+2.0簡單學習


在linux下想做一個圖形化的界面,然后自己選擇使用gtk+2.0來進行編輯,我的電腦已經安裝過gtk+2.0了,所以就在網上找了一個安裝方法,結果未測試,大家有安裝問題可以說下,一起探討下。

1、安裝gcc/g++/gdb/make 等基本編程工具

sudo apt-get install build-essential

2、安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件

sudo apt-get install gnome-core-devel

3、用於在編譯GTK程序時自動找出頭文件及庫文件位置

sudo apt-get install pkg-config

4、安裝 devhelp GTK文檔查看程序

sudo apt-get install devhelp

5、安裝 gtk/glib 的API參考手冊及其它幫助文檔

sudo apt-get install libglib2.0-doc libgtk2.0-doc

6、安裝基於GTK的界面GTK是開發Gnome窗口的c/c++語言圖形庫

sudo apt-get install glade libglade2-dev

7、安裝gtk2.0 或者 將gtk+2.0所需的所有文件統通下載安裝完畢

sudo apt-get install libgtk2.0-dev

安裝完畢后就可以開始寫第一個簡單的程序了!

 1 #include<gtk/gtk.h>                            //必須引用gtk/gtk.h這個頭文件
 2 int main(int argc,char *argv[])                //標准c語言主函數的聲明
 3 {
 4     GtkWidget *window;                        //聲明一個窗口控件的指針,其中GtkWidget是gtk+2.0控件類型。window是變量名,與變量類型無關
 5     
 6     gtk_init(&argc,&argv);                    //初始化gtk+環境,在gtk+程序中是必須的
 7     
 8     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 9     /*用來創建窗口。函數gtk_window_new 創建一個窗口並返回這個窗口的控件指針,這里把指針的值賦給了window這個變量;參數GTK_WINDOW_TOPLEVEL指明窗口的類型為最上層的主窗口,還有一個參數GTK_WINDOW_POPUP指明窗口類型為彈出式無邊框窗口*/
10     
11     gtk_window_set_title(GTK_WINDOW(window),"hello World");//給window窗口設置標題
12 
13     gtk_window_set_default_size(GTK_WINDOW(window),500,500);//給window窗口設置大小
14     g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
15     /*事件監聽函數,意思是,對於對象window,當"destroy"時間發生的時候,調用gtk_main_quit函數,傳遞這個函數的參數為NULL,也就是當你點擊窗口關閉按鈕的時候,結束程序*/
16 
17     gtk_widget_show(window);        //顯示上一步創建的窗口
18     
19     gtk_main();
20     /*這個函數是最關鍵的,它是gtk+2.0的主事件循環,每個gtk+2.0程序都要有一個否則程序無法運行*/
21     return FALSE;
22     /*代碼最后的邏輯返回值為FALSE它相當於整型的0。*/
23 }

這樣一個簡單的程序就完成了,可以使用gcc直接編譯,命令為

gcc test.c `pkg-config --cflags --libs gtk+-2.0`

其中最后一個符號和pkg前面的符號是~同一個按鍵的符號,不能寫成單引號,gcc這個程序,如果你沒有什么語法錯誤的話,會生成一個a.out的可執行文件,然后就可以開心的運行了,你會發現執行程序之后出現了一個名為hello World的窗口,這就說明你的第一個程序已經成功了。

 


免責聲明!

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



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