《Linux應用實例教程》課件-講義35開發(fā)環(huán)境安裝-GTK安裝與應用測試_第1頁
《Linux應用實例教程》課件-講義35開發(fā)環(huán)境安裝-GTK安裝與應用測試_第2頁
《Linux應用實例教程》課件-講義35開發(fā)環(huán)境安裝-GTK安裝與應用測試_第3頁
《Linux應用實例教程》課件-講義35開發(fā)環(huán)境安裝-GTK安裝與應用測試_第4頁
《Linux應用實例教程》課件-講義35開發(fā)環(huán)境安裝-GTK安裝與應用測試_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

S11、開發(fā)環(huán)境安裝-GTK安裝與應用測試S11、開發(fā)環(huán)境安裝-GTK安裝與應用測試S11、開發(fā)環(huán)境安裝-GTK安裝與應用測試1、安裝gcc/g++/gdb/make等基本編程工具sudoapt-getinstallbuild-essentialg++--version2.安裝libgtk2.0-devlibglib2.0-dev等開發(fā)相關(guān)的庫文件sudoapt-getinstallgnome-core-devel3.安裝編譯GTK程序時自動找出頭文件及庫文件位置的配置包sudoapt-getinstallpkg-config4.安裝devhelpGTK文檔查看程序sudoapt-getinstalldevhelpS11、開發(fā)環(huán)境安裝-GTK安裝與應用測試5.安裝gtk/glib的API參考手冊及其它幫助文檔sudoapt-getinstalllibglib2.0-doclibgtk2.0-doc6.安裝基于GTK的界面sudoapt-getinstallgladelibglade2-dev7.安裝gtk2.0或gtk+2.0所需文件sudoapt-getinstalllibgtk2.0-devS11、開發(fā)環(huán)境安裝-GTK安裝與應用測試查看GTK庫版本1.查看gtk2.x版本pkg-config--modversiongtk+-2.02.查看pkg-config的版本pkg-config--version3.查看是否安裝了gtkpkg-config--list-all|grepgtkS11、開發(fā)環(huán)境安裝-GTK安裝與應用測試應用測試建立程序文件t2.c:S11、開發(fā)環(huán)境安裝-GTK安裝與應用測試#include<gtk/gtk.h> //頭文件#include<stdio.h>GtkWidget*labeltitle,*lablecontent;//標簽變量//鼠標點擊事件處理函數(shù)gbooleandeal_mouse_press(GtkWidget*widget,GdkEventButton*event,gpointerdata){ gcharstr[100]; switch(event->button){ //判斷鼠標點擊的類型 case1: printf("鼠標左鍵單擊!!\n"); //在字符終端上輸出 sprintf(str,"鼠標左鍵單擊"); //將格式化的數(shù)據(jù)寫入字符串 break; case2: printf("鼠標中鍵單擊!!\n"); sprintf(str,"鼠標中鍵單擊"); break;S11、開發(fā)環(huán)境安裝-GTK安裝與應用測試 case3: printf("鼠標右鍵單擊!!\n"); sprintf(str,"鼠標右鍵單擊"); break; default: printf("鼠標未知按鍵單擊!!\n"); sprintf(str,"鼠標未知按鍵單擊"); } if(event->type==GDK_2BUTTON_PRESS){ printf("鼠標雙擊\n"); sprintf(str,"鼠標雙擊");

} ginti=event->x; gintj=event->y; printf("鼠標位置:(%d,%d)\n",i,j); sprintf(str,"鼠標位置:(%d,%d)",i,j); //將格式化的數(shù)據(jù)寫入字符串 gtk_label_set_text(GTK_LABEL(lablecontent),str); //將字符串顯示在標簽控件上 returnTRUE;}S11、開發(fā)環(huán)境安裝-GTK安裝與應用測試gbooleandeal_motion_notify_event(GtkWidget*widget,GdkEventMotion*event,gpointerdata){ gcharstr[100]; //獲得移動鼠標的坐標值,距離窗口左頂點 ginti=event->x; gintj=event->y; printf("鼠標移動位置:(%d,%d)\n",i,j); sprintf(str,"鼠標移動位置:(%d,%d)",i,j); //將格式化的數(shù)據(jù)寫入字符串 gtk_label_set_text(GTK_LABEL(lablecontent),str); returnTRUE;}S11、開發(fā)環(huán)境安裝-GTK安裝與應用測試intmain(intargc,char*argv[]){ gtk_init(&argc,&argv); //初始化 GtkWidget*button; //按鈕變量 GtkWidget*window=gtk_window_new(GTK_WINDOW_TOPLEVEL); GtkWidget*vbox=gtk_vbox_new(TRUE,3); labeltitle=gtk_label_new("操作信息");//創(chuàng)建標簽控件 lablecontent=gtk_label_new("動作及位置"); gtk_box_pack_start(GTK_BOX(vbox),labeltitle,FALSE,FALSE,0); //將標簽控件加入容器 gtk_box_pack_start(GTK_BOX(vbox),lablecontent,FALSE,FALSE,0);button=gtk_button_new_with_label("關(guān)閉");//創(chuàng)建按鈕控件 gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); gtk_window_set_title(GTK_WINDOW(window),"GTK圖形用戶界面編程入門"); gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); gtk_widget_set_size_request(window,400,300);S11、開發(fā)環(huán)境安裝-GTK安裝與應用測試 g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL); //設(shè)置按鈕點擊事件處理函數(shù) g_signal_connect(GTK_OBJECT(button),"clicked",G_CALLBACK(gtk_main_quit),NULL); gtk_widget_add_events(window,GDK_BUTTON_PRESS_MASK|GDK_BUTTON_MOTION_MASK);deal_mouse_event處理 g_signal_connect(window,"button-press-event",G_CALLBACK(deal_mouse_press),NULL); //設(shè)置"motion-notify-event"按住鼠標移動事件由deal_motion_notify_event處理 g_signal_connect(window,"motion-notify-event",G_CALLBACK(deal_motion_notify_event),NULL); gtk_container_add(GTK_CONTAINER(window),vbox); //將縱向盒狀容器加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論