標籤:init 命令列 linux中 dem efault loop alt idg sig
前言:對於大學中電腦系的每年暑假的課設有太多想說的,能從中學到非常多東西,當然不排除打醬油的,這些能夠掠過哦,凡事都打醬油。人生也是打醬油的吧。
2333。
對於大三曾經的課設一般的要求都是用C寫的,即使你學的物件導向非常好。也僅僅能老老實實的來用C寫。
當然這當中還有好多要說道的東西。
用C寫。面對windows下的那不能再吐槽的cmd終端,我就不說太多了。由於已經非常少到windows上做東西。用C寫,又想寫的高大上一點。當然要有圖形介面了。在linux上用C寫介面程式。GTK+是少不了的,可是運用物件導向的思想來說,假設讓代碼中夾雜著太多介面的東西。感覺你寫到幾千行的時候,你就分不出來那裡是主要邏輯,那裡是介面程式了。
用MVC的思想來說,你得把主要邏輯來體如今你的主要演算法上,介面來輔助更好的展現你的思想。
那麼,用Glade來畫介面。在代碼中寫主要演算法邏輯,這樣就能非常清晰把介面程式和主要演算法邏輯分離開。使開發過程更快,同一時候也降低了寫介面的麻煩。同一時候用GTK+來寫一些用C語言實現的介面串連程式,方便galde畫出的介面能更好的工作。
好了,說了這麼多。先把主要要用到的東西來介紹一下。
主要環境:ubuntu14.04,當然12.04也能夠。
開發中要用到的工具:gcc編譯器,make命令,glade開發介面,GTK+的安裝,一個編輯程式的ide。
上面的編輯程式中我沒實用linux下的vim來寫,一個是自己還不太熟悉,同一時候,寫一個比較大的project的話來說,vim總認為還不是太適合。
環境配置:
1、Glade的安裝能夠到ubuntu的軟體中心中搜尋安裝。這個是最簡單的。
也能夠在命令列中用
<span style="font-size:18px;">sudo apt-get install glade</span>
來安裝。
2、make的安裝
直接在命令列中輸入
<span style="font-size:18px;">sudo apt-get install make</span>
來安裝。
3、對於gcc和GTK+,來說,一般安裝的linux中都有內建的gcc和GTK+,這個能夠不用在安裝,假設認為gcc的版本號碼比較低。能夠更新gcc的版本號碼。GTK+ 的版本號碼為3.0以上。
安裝好以上程式後,能夠檢驗一下是否都能正常工作。
1、對於galde來說,按下win鍵,在出現的介面中輸入glade,點擊glade表徵圖,出現以下的介面說明galde是能夠執行的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVzdF9zdXBlcm1hbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
同一時候也能夠在命令列中輸入glade,相同會開啟glade程式。
2、gcc的檢驗能夠以最簡單的C檔案來檢驗。
在編輯器中建立立一個HelloWorld.c程式。
<span style="font-size:18px;">#include <stdlib.h>#include <stdio.h>int main(int argc, char *argv[]) { printf("HelloWorld!"); return 0;}</span>儲存檔案後,在命令列中進入到儲存的上述檔案的的目錄下,輸入下面編譯命令。來編譯上述HelloWorld.c檔案
<span style="font-size:18px;">gcc HelloWorld.c -o helloworld</span>
編譯上面命令後,會產生可運行檔案,HelloWorld。輸入
<span style="font-size:18px;">./HelloWorld 來執行產生的HelloWorld程式。</span>
3、make的檢驗
直接在命令列中輸入
<span style="font-size:18px;">make --version</span>
能夠看到make的版本號碼。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVzdF9zdXBlcm1hbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
好了上面的環境都搭建完畢後。能夠跑一個最簡單的測試程式。
Demo 測試。
在編輯器中建立立一個main.c檔案。代碼例如以下
<span style="font-size:14px;">#include <stdlib.h>#include <gtk/gtk.h>//HelloWorld按鈕的回呼函數,也就是按下HelloWorld按鈕會執行這個helloworld函數static void helloWorld (GtkWidget *wid, GtkWidget *win){ GtkWidget *dialog = NULL;//gtk中的控制項//建立一個dialog表單。上面的資訊為Hello World! dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!"); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);//設定表單的位置 gtk_dialog_run (GTK_DIALOG (dialog));//執行上面建立的表單 gtk_widget_destroy (dialog);//釋放表單的介面記憶體}int main (int argc, char *argv[]){ GtkWidget *button = NULL; GtkWidget *win = NULL; GtkWidget *vbox = NULL; /* Initialize GTK+ *///初始化GTK+ 的代碼,這三行代碼不要動就能夠,自己的代碼在以下寫 g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL); gtk_init (&argc, &argv); g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL); /* Create the main window */ win = gtk_window_new (GTK_WINDOW_TOPLEVEL);//new出來一個主表單 gtk_container_set_border_width (GTK_CONTAINER (win), 8);//設定表單邊緣的大小 gtk_window_set_title (GTK_WINDOW (win), "Hello World");//設定表單標題 gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);//設定表單位置 gtk_widget_realize (win);//實現上述表單 g_signal_connect (win, "destroy", gtk_main_quit, NULL);//表單訊號串連,點擊關閉按鈕是會關閉表單。 /* Create a vertical box with buttons */ vbox = gtk_vbox_new (TRUE, 6);建立一個Vbox容器 gtk_container_add (GTK_CONTAINER (win), vbox);//將建立的容器加入到上述建立的主表單中 button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);//建立一個按鈕 g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (helloWorld), (gpointer) win);//設定按鈕的回呼函數,看到callback大家都應該懂這個是回呼函數的。 gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);//將建立的按鈕加入到上述的vbox中//以下建立關閉按鈕,並將關閉按鈕的回呼函數設定為系統的推出函數gtk_main_quit。 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); g_signal_connect (button, "clicked", gtk_main_quit, NULL); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); /* Enter the main loop */ gtk_widget_show_all (win);//顯示上述的建立的介面 gtk_main ();//開始整個主迴圈。 return 0;}</span>上面的代碼中都做了具體的凝視。看懂應該不難。
儲存上面的main.c檔案後,在命令列中輸入
<span style="font-size:18px;">gcc -Wall -g -o main main.c `pkg-config --cflags --libs gtk+-3.0` -export-dynamic</span>
會進行編譯main.c檔案並產生可運行檔案main.
繼續輸入
<span style="font-size:18px;">./main</span>
執行可執行檔。
會出現以下的介面。
點擊資訊,會出現以下的HelloWorld資訊介面。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVzdF9zdXBlcm1hbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
好了,到這裡全部的工作已經做完了,接下來就能夠進行主要程式的開發。
當然。這還須要你學習一些其它的知識。比方怎樣在glade中畫出你所要的介面。怎樣進行介面訊號和實際函數的串連。
以及怎樣在代碼中關聯這些介面。和怎樣在代碼中運行一些介面資訊。
怎樣使用make來使編譯命令來更加簡單智能。
這些僅僅是我會結合我的課設中用到的一些來解說一下,當然,畢竟能力有限。在上面和以後有講的不當的話,歡迎批評指正。
尊重原創,歡迎轉載,轉載請註明出處:http://write.blog.csdn.net/postedit/38944891
Ubuntu下用glade和GTK+開發C語言介面程式(一)