亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gdb和gtk

?? 關于ns使用技巧的大集
??
字號:
ubuntu8.04配置GCC/GDB等C/C++開發工具 本系列教程版權歸集思博客所有,請注明出處:集思博客www.gisblogs.net在Ubuntu發行版中,打開shell,使用下面的命令可以方便的安裝GCC編譯器(\$為命令行提示符):$ sudo apt-get install build-essential該命令可以把所需要gcc、g++編譯器和make工具及其依賴的其它軟件包自動安裝并配置好。     $ sudo apt-get install g77 f77 gfortran該命令可以把Fortran 77編譯器及Fortran95編譯器及其依賴的軟件包自動安裝并配置好。     $ sudo apt-get install gdb該命令可以把gdb調試器及其依賴的軟件包自動安裝并配置好,gdb是Linux下的默認調試工具。 安裝完成后寫一個C語言程序testc.c測試一下。 #include <stdio.h>int main(){printf("Hello Ubuntu!\n");return 0;}$ gcc testc.c -o testc$ ./testc 2、安裝GTK環境安裝GTK環境只要安裝一個gnome-core-devel就可以了,里面集成了很多其他的包。除此之外還要轉一些其他的東西,如libglib2.0 -doc、libgtk2.0-doc幫助文檔,devhelp幫助文檔查看,glade-gnome、glade-common、glade-doc圖形界面設計等。  sudo apt-get install gnome-core-develsudo apt-get install libglib2.0-doc libgtk2.0-docsudo apt-get install devhelpsudo apt-get install glade-gnome glade-common glade-doc     3、測試程序  本系列教程版權歸集思博客所有,請注明出處:集思博客www.gisblogs.net   #include<stdio.h>#include <gtk/gtk.h> void hello(GtkWidget *widget,gpointer data){g_print("Hello Ubuntu!\n");}gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data){g_print ("delete event occurred\n");return(TRUE);}void destroy(GtkWidget *widget,gpointer data){gtk_main_quit();}int main( int argc, char *argv[] ){GtkWidget *window;GtkWidget *button;gtk_init (&argc, &argv);window=gtk_window_new (GTK_WINDOW_TOPLEVEL);gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);gtk_container_set_border_width (GTK_CONTAINER (window), 10);button = gtk_button_new_with_label ("Hello Ubuntu!");gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));gtk_container_add (GTK_CONTAINER (window), button);gtk_widget_show (button);gtk_widget_show (window);gtk_main();return(0);}     用下面命令編譯運行      $ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`$ ./gtktest     會顯示一個帶有一個按鈕的窗口,點擊按鈕以后窗口關閉,命令行顯示Hello Ubuntu!     4、QT安裝      libqt4-coreqt4-designerqt4-dev-toolsqt4-qtconfiglibqt4-devlibqt4-gui libqt4-debuglibqt4-sql  這個我還沒有怎么用過,在新立得里面搜索QT4,看著差不多的都裝上了。GNU Image Manipulation Program (GIMP)GTK (GIMP ToolKit) 原本只是 GIMP 開發過程中用來管理圖型界面的一套工具程序庫. 由于它使用 LGPL 聲明, 程序的開發者可以免費使用它來開發公共程序軟件, 免費軟件或甚至商用軟件. 隨者使用率及使用范圍的增大, 很快的 GTK 從只為了滿足 GIMP 需求而存在的印象中跳出, 發展成今日功能廣泛的一套程序庫.GTK 的穩定版已從 1.2 發行到現在的 2.0. 1.2 版基本上只有 GLIB 跟 GTK+ 兩個組件, 而 GTK 中另含有 GDK (GIMP Drawing Kit) 程序庫. 一般我們直接使用的是 GTK. 其中幾乎所有繪圖功能都是透過 GDK 來完成的. GDK 主要負責和 X Window 的程序庫做低層的溝通. 它也提供較為簡化的程序界面給 GTK 使用. glib 是最低層的程序庫. 它主要的功能是與系統上的 C library 打交道從而給予程序設計者一個一致的環境, 不需為了各個 UNIX 系統上的些許不同而顧慮. 2.0 除了修改 1.2 之外, 還增加了 ATK (Accessibility Tool Kit) 和 Pango (pan 希臘 "全部", go 日文 "語"). 透過 ATK 使得在開發幫助殘疾人士的工具軟件上,不論是在可行性還是在難易度上都有相當大的改善. Pango 的多國文字處理能力在全球化的今天更是一項不可或缺的功能. 此外專門處理圖形的 GDK-pixbuf 也合并到了 2.0 版的 GTK+ 套件中.GTK 有一項特點是它完全使用 C 語言, 但無論在設計上或是在應用上都一直有著OO的特點. 對象之間不但有繼承的特性, 更有回調函數 (callback function) 構成事件驅動的特點.GTK 的世界十分廣闊. 諸如 GNet 等使用 GLIB 建立的網絡公共程序庫, 雖然不是 GTK+ 小組制作但也有越來越多人在使用. 有興趣的網友們可以去 GTK 及 GNOME 的官方網站.GTK 編程基本示例●GTK 簡單編程下面的例子是一個GTK最基本例子,它僅僅在屏幕上彈出一個窗口,并且 即使關閉該窗口,該程序仍未退出。 /* File: base.c */ #include &lt;gtk/gtk.h&gt; int main( int argc, char *argv[] ) { GtkWidget *window; gtk_init (&amp;argc, &amp;argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_show (window); gtk_main (); return(0); } 其中 gtk_init(&argc, &argv) 是gtk應用程序的初始化部分,它使gtk 應用程序可以接受某些命令行的參量: --gtk-module //載入另外的GTK模塊 --g-fatal-warnings //使所有警告是致命錯誤 --gtk-debug //調試gtk --gtk-no-debug //不調試gtk --gdk-debug //調試gdk --gdk-no-debug //不調試gdk --display //指定display --sync //使X調用按順序方式 --no-xshm //不使用X共享內存 --name //指定窗口管理器使用的程序名 --class //指定窗口管理器使用的程序類型 其中 window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_show (window); 建立頂級窗口并且顯示該窗口,它在缺省情況下是200x200大小。最后 gtk_main() 使程序進入事件循環階段,gtk將在內部處理事件。現在讓我們編譯文件 base.c: gcc -Wall -g base.c -o base \ `gtk-config --cflags` `gtk-config --libs` 其中 `gtk-config --cflags` 產生編譯gtk所使用的頭文件位置, `gtk-config --libs` 產生連接gtk程序所使用的庫。一般地,涉及 gtk的庫有: libgtk.so libgdk.so libgmodule.so libglib.so。接下來把上面的例子變成一個稍微復雜的例子,該例子彈出一個 窗口,并且在窗口中顯示一個按鈕。/* File: helloworld.c */ #include &lt;gtk/gtk.h&gt; void hello( GtkWidget *widget, gpointer data ) { g_print ("Hello World\n"); } gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { //打印信息 g_print ("delete event occurred\n"); //如果返回FALSE,GTK將發出"destroy"信號; 如果返回TRUE, //則不讓該窗口關閉 return(TRUE); } void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit(); } int main( int argc, char *argv[] ) { //GtkWidget 是 Widget的類型 GtkWidget *window; GtkWidget *button; //gtk 初始化 gtk_init(&amp;argc, &amp;argv); //建立新窗口 window = gtk_window_new (GTK_WINDOW_TOPLEVEL); //當使用窗口管理器關閉窗口時,將調用 delete_event() 函數 //本例中所傳遞的參數是 NULL gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); //把 "destroy" 事件和信號處理器聯系起來 gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL); //設置窗口的邊界寬度 gtk_container_set_border_width (GTK_CONTAINER (window), 10); //建立一個標簽是"Hello World"的按鈕 button = gtk_button_new_with_label ("Hello World"); //當按鈕被單擊時,即接收到"clicked"信號,將調用 hello()函數 gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (hello), NULL); //當按鈕被單擊時,調用 gtk_widget_destroy(window)關閉窗口。 //這里將引發 "destroy" 信號 gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window)); //把按鈕加入頂級窗口中 gtk_container_add (GTK_CONTAINER (window), button); //顯示按鈕 gtk_widget_show (button); //顯示頂級窗口 gtk_widget_show (window); //進入事件循環 gtk_main (); return(0); } 編譯連接 helloworld.c,執行結果為:[ gtk-helloworld.gif ]下面總結一下,編寫GTK程序的基本步驟:    * 初始化    * 創建主窗口    * 創建并加入子窗口    * 設置組件回調    * 顯示窗口    * 進入事件循環 ●GTK中文程序示例上面的例子是英文編程的基本例子,如果在程序中使用中文,還應當 對上面的例子作適當的修改。當然最基本的要求還是Linux系統必須有 一個正確的國際化環境,具體地說就是:    * 系統支持中文C Locale    * 系統支持中文X Locale    * GTK的資源文件/etc/gtk/gtkrc.zh_CN設置正確 對于上面的幾個要求,可以參閱本書的國際化編程部分。下面是一個典型的 gtkrc.zh_CN文件,其中指定的缺省字體是14點陣 字體。 # $(gtkconfigdir)/gtkrc.zh_CN # # This file defines the fontsets for Chinese language (zh) using # the simplified chinese standard GuoBiao as in mainland China (CN) # # 1999, Pablo Saratxaga &lt;srtxg@chanae.alphanet.ch&gt; # style "gtk-default-zh-cn" { fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-*,\ -cclib-song-medium-r-normal--14-*-*-*-*-*-gbk-0" } class "GtkWidget" style "gtk-default-zh-cn" 使上述程序支持中文非常簡單,只需要在初始化gtk之前調用locale設置函數: //設置Locale gtk_set_locale(); //gtk 初始化 gtk_init(&amp;argc, &amp;argv); 把按鈕的標簽改為中文即可: //建立一個含中文標簽的按鈕 button = gtk_button_new_with_label ("大家好!"); 程序運行的結果是:[ gtk-helloworld-chinese.gif ]如果不想用缺省的資源文件中所指定的字體,也可以在程序中指定 資源文件或直接把fontset寫在程序中。 指定資源文件使用函數 gtk_rc_parse(filename),直接使用fontset使用函數 gtk_rc_parse_string (gtkrc_string)。●實例詳細剖析上面的例子中,我們遇到了許多新的數據類型和回調的方式等,下面 一一剖析:    * 包含的頭文件:      如果程序只涉及到gtk部分,而不是直接調用gdk的函數,只須包含 gtk/gtk.h,如涉及到gdk部分,應包含gdk/gdk.h    * 數據類型:      glib 中定義了許多數據類型如 gpointer,gint等等,它們都是比較 容易理解的。對GTK的組件(GtkWidget),類型都是GtkWidget,它包含了一個 窗口組件所需要的信息。GdkEvent 則封裝了X事件的信息。    * 信號和回調      信號(Signal)是GTK中出現的新的并且比較重要的概念。這里講的"信號" 不同于UNIX的signal,只是名稱一樣。當處理X事件時,如鼠標按鍵按下, GTK的組件接收到這一事件,便發出響應的信號。不同的組件相關信號 可能不一樣。 在上述例子中使用函數 gint gtk_signal_connect( GtkObject *object, gchar *name, GtkSignalFunc func, gpointer func_data ); 把組件 object 與回調函數 func 聯系起來,name 是所發出的信號的 名稱。func_data 是傳遞給回調函數的參數。回調函數的格式是 void callback_func( GtkWidget *widget, gpointer callback_data ); 其中 widget 是發出信號的組件,callback_data 是傳遞參數的指針。在上例中還使用了另外一套類似的函數: gint gtk_signal_connect_object( GtkObject *object, gchar *name, GtkSignalFunc func, GtkObject *slot_object ); void callback_func( GtkObject *object ); 它們與第一套函數的區別是回調函數只使用一個參量。    * GTK 的事件:      gtk組件的行為或X服務器發送的事件可以和下列事件聯系起來      button_press_event //按鈕按下 button_release_event //按鈕釋放 motion_notify_event //鼠標移動 delete_event //使用窗口管理器關閉 destroy_event //關閉 expose_event //曝光 key_press_event //按鍵按下 key_release_event //按鍵釋放 enter_notify_event //鼠標指針進入組件 leave_notify_event //鼠標指針離開組件 configure_event //屬性改變 focus_in_event //獲得聚焦 focus_out_event //失去聚焦 map_event //映射 unmap_event //消失 property_notify_event //屬性改變 selection_clear_event //選擇清除 selection_request_event //選擇請求 selection_notify_event //選擇通知 proximity_in_event //接近 proximity_out_event //離開 drag_begin_event //拖開始 drag_request_event //拖請求 drag_end_event //拖結束 drop_enter_event //放進入 drop_leave_event //放離開 drop_data_available_event //放數據可用    * 上例中在窗口管理器中關閉窗口失效(它的好處是給用戶一個重新確認的機會),原因是函數 gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) 返回 TRUE,這樣 GTK 組件不會發出 "destroy" 信號。    * 當按鈕按下時,調用函數 void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit(); } 這樣在主程序中的 gtk_main()便退出循環,程序隨之結束。    * 函數gtk_init (&argc, &argv)初始化GTK程序并傳遞響應的命令行參數給 GTK,當參數符合時,便從列表中清除,剩下的參數再由用戶處理    * 語句 window = gtk_window_new (GTK_WINDOW_TOPLEVEL) 創建頂級窗口, 參量的意義是: GTK_WINDOW_TOPLEVEL: 頂級窗口 GTK_WINDOW_DIALOG: 對話框窗口 GTK_WINDOW_POPUP: 彈出式窗口,不受窗口管理器管理,即 無邊界窗口    * 語句 gtk_container_set_border_width (GTK_CONTAINER (window), 10) 把窗口的內邊界寬度設置為10。    * 語句 gtk_container_add (GTK_CONTAINER (window), button) 把剛建立 的按鈕組件加入到 window 中。請注意這里在使用 window 時把它投影 成GTK_CONTAINER,在以后的GTK編程中會經常遇到類似的投影。    * 語句 gtk_widget_show (window); 表示已經設置完窗口的屬性,可以顯示 了。    * 事件循環 gtk_main(),由 GTK 內部處理 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线播放| 视频在线观看一区二区三区| 欧美亚洲国产怡红院影院| 欧美揉bbbbb揉bbbbb| 91免费视频观看| 色综合天天综合色综合av| 国产99精品视频| 99久久国产免费看| 精品一区二区三区视频| 国内成人自拍视频| 国产亚洲女人久久久久毛片| 国产精品18久久久| 亚洲欧洲精品一区二区三区| 色88888久久久久久影院野外| 亚洲激情男女视频| 91精品国产综合久久婷婷香蕉| 另类小说一区二区三区| 久久精品在线观看| 色一情一乱一乱一91av| 日韩精品视频网| 国产精品午夜在线| 7777精品伊人久久久大香线蕉的 | 色乱码一区二区三区88| 午夜av区久久| 国产日韩综合av| 色老汉一区二区三区| 美女视频黄 久久| 亚洲欧洲在线观看av| 91.成人天堂一区| 成人深夜在线观看| 午夜精品在线视频一区| 亚洲国产精品成人久久综合一区| 欧美少妇bbb| 国产精品一级片在线观看| 一个色综合网站| 久久综合久久久久88| 精品国产髙清在线看国产毛片| 丁香桃色午夜亚洲一区二区三区| 亚洲色图欧美偷拍| 欧美刺激午夜性久久久久久久| 国产福利一区二区| 三级在线观看一区二区| 中文字幕一区二区三区四区不卡| 91精品国产综合久久蜜臀| av成人老司机| 黄色精品一二区| 视频一区二区三区在线| 国产精品色哟哟| 日韩欧美成人激情| 欧美视频在线观看一区| 成人激情开心网| 九九久久精品视频| 亚洲自拍偷拍综合| 国产精品18久久久久久久久久久久| 婷婷夜色潮精品综合在线| 久久综合色8888| 韩国三级电影一区二区| va亚洲va日韩不卡在线观看| 日韩一区二区三区视频在线| 久久av老司机精品网站导航| 56国语精品自产拍在线观看| 国产伦精品一区二区三区免费| 粗大黑人巨茎大战欧美成人| 日本中文一区二区三区| 一区二区在线观看视频| 国产精品久久久久久久午夜片| 欧美成人乱码一区二区三区| 欧美久久久久久久久| 欧美影片第一页| 欧美亚洲一区三区| 日本二三区不卡| 色天使色偷偷av一区二区| 91首页免费视频| 91污在线观看| 色综合欧美在线视频区| 色综合激情五月| 色婷婷精品大在线视频| 日本二三区不卡| 欧美在线制服丝袜| 欧美日韩第一区日日骚| 日韩一区二区免费高清| 日韩欧美一区在线| 日韩免费看的电影| 久久午夜老司机| 日本一区二区在线不卡| 国产精品青草综合久久久久99| 久久精品人人爽人人爽| 国产情人综合久久777777| 久久精品一二三| 日韩久久精品一区| 国产精品亚洲第一| 99久久99久久免费精品蜜臀| 国产经典欧美精品| 国产精品一卡二| 国产白丝精品91爽爽久久| 国内精品自线一区二区三区视频| 午夜精品久久久久久久久久| 麻豆一区二区三| 精品一区中文字幕| 国产一区二区三区免费| 国产精品资源在线| 国产成人av电影在线播放| 国精产品一区一区三区mba视频 | 午夜精品久久久久久久99水蜜桃| 一区二区三区成人| 在线观看不卡视频| 色久优优欧美色久优优| 欧美精品一区二区三区一线天视频 | 不卡一区二区在线| 国产一区不卡在线| 久久国产精品一区二区| 久久精品国产精品亚洲综合| 亚洲国产欧美在线人成| 久久亚洲二区三区| 粉嫩一区二区三区性色av| 成人污视频在线观看| 91丨porny丨国产入口| 色婷婷激情综合| 欧美日韩亚洲高清一区二区| 在线91免费看| 久久亚洲二区三区| 精品国产乱码久久久久久牛牛| 综合亚洲深深色噜噜狠狠网站| 一区二区三区四区蜜桃 | 高清av一区二区| 欧美视频日韩视频在线观看| 日韩一区二区在线观看视频播放| 欧美成人三级电影在线| 国产精品看片你懂得 | 亚洲男人天堂一区| 午夜天堂影视香蕉久久| 午夜精品久久久久久久99水蜜桃 | 亚洲精品一二三四区| 日韩福利电影在线观看| 不卡一区在线观看| 欧美一二三区精品| 国产精品乱人伦中文| 亚洲成av人在线观看| 国内精品伊人久久久久av一坑| 91理论电影在线观看| 91精品国产一区二区三区香蕉| 国产精品女主播在线观看| 丝袜a∨在线一区二区三区不卡| 国产另类ts人妖一区二区| 欧美伊人久久大香线蕉综合69 | 日韩一本二本av| 亚洲免费大片在线观看| 久久99精品国产麻豆婷婷| 91免费看`日韩一区二区| 一本一道波多野结衣一区二区| 在线播放中文一区| 五月天亚洲婷婷| 99这里只有精品| 日韩欧美成人午夜| 亚洲综合色自拍一区| 视频一区二区中文字幕| 亚洲综合一区在线| 成人h版在线观看| 国产午夜精品在线观看| 蜜桃免费网站一区二区三区| 欧美电影精品一区二区| 亚洲成精国产精品女| 精品视频免费在线| 国产精品色一区二区三区| 国产精一区二区三区| 日韩午夜在线影院| 在线亚洲一区观看| 在线成人高清不卡| 亚洲视频一二三区| 国产毛片精品视频| 日韩午夜中文字幕| 日韩电影网1区2区| 欧美手机在线视频| 亚洲午夜影视影院在线观看| 顶级嫩模精品视频在线看| 欧美一区二区三区日韩| 亚洲大型综合色站| 91国产视频在线观看| 中文字幕日本不卡| 懂色av一区二区三区蜜臀| 久久噜噜亚洲综合| 国产在线视频一区二区三区| 日韩视频免费观看高清在线视频| 亚洲妇熟xx妇色黄| 欧美视频一区在线| 亚洲国产精品影院| 4438x成人网最大色成网站| 亚洲日本va午夜在线电影| 国产成人亚洲综合a∨婷婷图片| 欧美日韩国产在线播放网站| 亚洲六月丁香色婷婷综合久久 | 亚洲激情校园春色| av中文一区二区三区| 日韩一区有码在线| 91美女片黄在线观看| ...av二区三区久久精品| 欧美人与禽zozo性伦| 日日摸夜夜添夜夜添国产精品| 91精品国产综合久久久蜜臀粉嫩| 捆绑紧缚一区二区三区视频|