Ubuntu下用glade和GTK+開發C語言介面程式(一)

來源:互聯網
上載者:User

標籤: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語言介面程式(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.