在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的窗口,這就說明你的第一個程序已經成功了。