




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第五講圖形界面編程第1頁,課件共36頁,創(chuàng)作于2023年2月MATLAB圖形界面中各對象關(guān)系根對象root圖形窗口對象figure右鍵菜單對象uicontextmenu菜單對象uimenu控件對象uicontrol坐標(biāo)軸對象axes線對象line文字對象text表面圖對象surface圖像對象image光源對象light第2頁,課件共36頁,創(chuàng)作于2023年2月窗口對象及其屬性設(shè)定窗口對象的建立
hwin=figure(屬性1,屬性值1,屬性2,屬性值2,…)hwin為圖形窗口的句柄,matlab環(huán)境允許打開多個窗口,每個窗口都對應(yīng)自己的句柄,通過該句柄可以進(jìn)一步對窗口的屬性等進(jìn)行操作。
hwin=gcf
獲得當(dāng)前窗口的句柄。第3頁,課件共36頁,創(chuàng)作于2023年2月圖形窗口的屬性第4頁,課件共36頁,創(chuàng)作于2023年2月常用屬性
color屬性由紅綠藍(lán)三原色組成,取值范圍為0到1。
menubar屬性設(shè)置菜單條的形式。
name屬性設(shè)置圖形窗口的標(biāo)題欄中標(biāo)題內(nèi)容,其屬性值為一字符串。
numbertitle屬性是否顯示圖形窗口標(biāo)題欄中的圖形標(biāo)號。
units屬性設(shè)定圖形單位。如:pixels(象素點)、inches(英寸)、centimeters(厘米)、normalized(歸一值)等第5頁,課件共36頁,創(chuàng)作于2023年2月
position屬性設(shè)定窗口的位置和大小,為1×4向量,前兩個值為窗口左下角橫縱坐標(biāo)值,后兩個元素值為窗口的寬度和高度,其單位由units屬性設(shè)定。
resize屬性確定是否可以改變圖形窗口的大小。
toolbar屬性是否顯示工具條。
visible屬性決定窗口是否為可見。
Pointer屬性設(shè)置鼠標(biāo)的顯示形式。
第6頁,課件共36頁,創(chuàng)作于2023年2月對象屬性的修改改變對象的屬性值
set(對象句柄,屬性1,屬性值1,屬性2,屬性值2,…)
屬性的名稱用單引號括起來;如果不給出屬性值,則返回全部允許的屬性值。獲得對象的屬性值
V=get(句柄名,屬性)?gwin=figure('visible','off');?set(gwin,'color',[1,0,0],'position',[100,200,300,300],...'name','Myprogram','numbertitle','off','menubar','none');?set(gwin,'visible','on')第7頁,課件共36頁,創(chuàng)作于2023年2月回調(diào)函數(shù)(callbackfunction)CloseRequestFcn-關(guān)閉窗口時響應(yīng)函數(shù)KeyPressFcn-鍵盤按下時響應(yīng)函數(shù)windowButtonDownFcn-鼠標(biāo)按下時響應(yīng)函數(shù)WindowButtonMotionFcn-鼠標(biāo)移動時響應(yīng)函數(shù)CreateFcn和DeleteFcn-建立和刪除對象時響應(yīng)函數(shù)CallBack-對象被選中時響應(yīng)函數(shù)第8頁,課件共36頁,創(chuàng)作于2023年2月?gwin=figuregwin=1?set(gwin,'windowbuttondownfcn','helpdlg(''mousebuttondown!'')')?set(gwin,'keypressfcn','helpdlg(''keyboardpressed!'')')一旦該對象指定的事件發(fā)生,將自動調(diào)用某指定的函數(shù),它可以是matlab文件,也可以是一組matlab程序。第9頁,課件共36頁,創(chuàng)作于2023年2月標(biāo)準(zhǔn)對話框及其調(diào)用文件名操作函數(shù)
uigetfile()和uiputfile()函數(shù)打開一個文件進(jìn)行讀、寫的對話框。
[fname,pname]=uigetfile(ffilter,strtitle,x,y)ffilter為文件名過濾器;strtiltle為對話框窗口標(biāo)題欄的顯示內(nèi)容;x、y為對話框出現(xiàn)的位置,省略則采用默認(rèn)位置。第10頁,課件共36頁,創(chuàng)作于2023年2月?[f,p]=uigetfile('*.m;*.txt','請選擇一個文件')f=fileprint.mp=E:\MATLABR11\work\第11頁,課件共36頁,創(chuàng)作于2023年2月顏色設(shè)置對話框
c=uisetcolor;或c=uisetcolor(c0);
函數(shù)返回一個1×3的顏色向量,分別對應(yīng)紅、綠、藍(lán)三原色,按下“取消”按鈕后返回空的向量;如果給出向量c0,則在圖中指向c0所定義的顏色位置,且按下“取消”按鈕時返回c0的值。第12頁,課件共36頁,創(chuàng)作于2023年2月字體設(shè)置對話框
h_Font=uisetfont或h_Font=uisetfont(h_Text,strTitle)h_Font為字體屬性的結(jié)構(gòu)體;h_Text為要設(shè)置的字符句柄,strTitle為對話框的標(biāo)題欄內(nèi)容。?s=uisetfonts=FontName:'楷體_GB2312'FontUnits:'points'FontSize:42FontWeight:'bold'FontAngle:'normal'第13頁,課件共36頁,創(chuàng)作于2023年2月警告與錯誤信息對話框
warndlg和errordlg函數(shù)二者的顯示圖標(biāo)不同。例:?h=warndlg({‘error:’,‘code1111.’},‘Warning’)
?h=errordlg({'error:','code1111.'},'Error')
第14頁,課件共36頁,創(chuàng)作于2023年2月幫助信息對話框與警告、錯誤信息對話框基本一致,僅僅是圖標(biāo)的不同。例:
?h=helpdlg({'幫助信息:','幫助信息對話框和警告錯誤對話框基本一致,只是圖標(biāo)不同!'},'幫助')第15頁,課件共36頁,創(chuàng)作于2023年2月通用信息框
msgbox(‘顯示信息’,’標(biāo)題’,’圖標(biāo)’)
圖標(biāo)包括:Error、Help、Warn以及Custom,如果缺省則為None。
?data=1:64;data=(data'*data)/64;?msgbox('Thisisanexampleofmsgbox!','customico','custom',data,hot(64))第16頁,課件共36頁,創(chuàng)作于2023年2月Matlab圖形界面基本控件靜態(tài)文本’text’
一般用來作為信息提示用。編輯框’edit’
讀取用戶數(shù)據(jù)的文字窗口??蚣堋甪rame’
概括一組控件,也可以修飾用。列表框‘list’
包含多個選項供用戶選擇。第17頁,課件共36頁,創(chuàng)作于2023年2月滾動條’slider’
圖示某個范圍。按鈕’pushbutton’
其上的字符說明其作用。切換按鈕’toggle’
兩狀態(tài)按鈕,單擊改變其狀態(tài)。收音機(jī)按鈕’radio’
一組選項,其中只能有一個被選中。檢取框’check’
一組選項,可以選擇多項。彈出式菜單’popup’
選中時打開一個列表。第18頁,課件共36頁,創(chuàng)作于2023年2月控件的常用屬性Units與position屬性意義同上,這里的位置是相對該窗口的左下角;String屬性標(biāo)注在控件上,用來說明或提示;Callback屬性實現(xiàn)該控件的實質(zhì)性功能;Enable屬性該控件的使能狀態(tài)‘on’或‘off’第19頁,課件共36頁,創(chuàng)作于2023年2月Cdata屬性真彩色位圖,為一三維數(shù)組,用于美化界面;Tooltipstring屬性鼠標(biāo)指針位于該控件時的提示信息顯示;Interruptable屬性是否中斷當(dāng)前回調(diào)函數(shù)的執(zhí)行,‘on’或‘off’字體屬性設(shè)置字體第20頁,課件共36頁,創(chuàng)作于2023年2月例1:h_main=figure(‘name’,‘a(chǎn)demoofguidesign’,‘menubar’,‘none’,…'numbertitle','off','position',[100100300100]);h_edit=uicontrol('style','edit','backgroundcolor',[111],'position',[20205020],...'tag','myedit','string','1','horizontalalignment','left');h_but1=uicontrol('style','pushbutton','position',[20505020],'string','INC',...'callback',['v=eval(get(h_edit,''string''));',...'set(h_edit,''string'',int2str(v+1));']);h_but2=uicontrol('style','pushbutton','position',[80505020],'string','DEC',...'callback',['v=eval(get(h_edit,''string''));','set(h_edit,''string'',int2str(v-1));']);第21頁,課件共36頁,創(chuàng)作于2023年2月functiongui_counter1()%gui_counterisademoofguidesign.h_main=figure('name','ademoofguidesign','menubar','none',...'numbertitle','off','position',[100100300100]);h_edit=uicontrol('style','edit','backgroundcolor',[111],'position',[20205020],...'tag','myedit','string','1','horizontalalignment','left');h_but1=uicontrol('style','pushbutton','position',[20505020],'string','INC',...'callback',['h=findobj(gcf,''tag'',''myedit'');','v=eval(get(h,''string''));',...'set(h,''string'',int2str(v+1));']);h_but2=uicontrol('style','pushbutton','position',[80505020],'string','DEC',...'callback',['h=findobj(gcf,''tag'',''myedit'');','v=eval(get(h,''string''));',...'set(h,''string'',int2str(v-1));']);第22頁,課件共36頁,創(chuàng)作于2023年2月例2functiongui_demo()%GUI_demoisanotherdemoofGUIdesign.h_main=figure('units','normalized','position',[0.30.30.50.4],...'name','GUIdemostration','numbertitle','off');h_axis=axes('units','normalized','position',[0.30.150.60.7],...'tag','axplot','xlim',[010],'ylim',[-11]);t=0:0.1:10;y=sin(t);line(t,y);bmp1=imread('1.bmp');bmp2=imread('2.bmp');bmp3=imread('3.bmp');bmp4=imread('4.bmp');h_1=uicontrol('style','pushbutton','units','normalized',...'position',[0.10.60.060.1],'cdata',bmp1,...'callback','zoomon','tooltipstring','Enablezooming');h_2=uicontrol('style','pushbutton','units','normalized',...'position',[0.040.450.060.1],'cdata',bmp2,...'callback','zoomxon','tooltipstring','Enablezoomonx-axisonly');h_3=uicontrol('style','pushbutton','units','normalized',...'position',[0.160.450.060.1],'cdata',bmp3,...'callback','zoomyon','tooltipstring','Enablezoomony-axisonly');h_4=uicontrol('style','pushbutton','units','normalized',...'position',[0.10.30.060.1],'cdata',bmp4,...'callback','zoomoff','tooltipstring','Disablezooming');第23頁,課件共36頁,創(chuàng)作于2023年2月第24頁,課件共36頁,創(chuàng)作于2023年2月Matlab菜單系統(tǒng)設(shè)計菜單系統(tǒng)的生成
菜單項句柄=uimenu(窗口句柄,屬性1,屬性值1,屬性2,屬性值2,…)
子菜單句柄=uimenu(菜單項句柄,屬性1,屬性值1,…)
屬性:菜單條名稱label回調(diào)函數(shù)callback第25頁,課件共36頁,創(chuàng)作于2023年2月熱鍵名稱accelerator背景顏色backgroundcolor前景顏色foregroundcolor選中狀態(tài)checked使能狀態(tài)enabled菜單條位置position分隔符separator第26頁,課件共36頁,創(chuàng)作于2023年2月ctxmenu=uicontextmenu;set(gcf,'uicontextmenu',ctxmenu);uimenu(ctxmenu,'label','zoomon','callback','zoomon');uimenu(ctxmenu,'label','x-axiszoomon','callback','zoomxon');uimenu(ctxmenu,'label','y-axiszoomon','callback','zoomyon');uimenu(ctxmenu,'label','zoomoff','callback','zoomoff');uimenu(ctxmenu,'label','checked','checked','on','separator','on');uimenu(ctxmenu,'label','disabled','enable','off');第27頁,課件共36頁,創(chuàng)作于2023年2月GUI設(shè)計工具簡介
guideGUI向?qū)гO(shè)計器。第28頁,課件共36頁,創(chuàng)作于2023年2月屬性設(shè)計器(PropertyEditor)設(shè)置所選圖形對象或GUI控件各屬性的值第29頁,課件共36頁,創(chuàng)作于2023年2月控件布局編輯器(AlignmentTool)設(shè)置控件的布局第30頁,課件共36頁,創(chuàng)作于2023年2月菜單編輯器(MenuEditor)編輯菜單項第31頁,課件共36頁,創(chuàng)作于2023年2月回調(diào)函數(shù)編輯器(CallbackEditor)編輯控件屬性所對應(yīng)的回調(diào)函數(shù)第32頁,課件共36頁,創(chuàng)作于2023年2月例:示意小球碰撞過程出射角上擋板下?lián)醢宓?3頁,課件共36頁,創(chuàng)作于2023年2月h1=line([0,1],-0.09*[11]);set(h1,'linewidth',5);h2=line([0,1],1.09*[11]);set(h2,'linewidth',7);uu={[010],0.050.5};set(h_main,'userdata',uu);Tag=lstcolorTag=rdradio1Tag=rdradio2Tag=rdradio3第34頁,課件共36頁,創(chuàng)作于2023年2月functionexec_bouncing(x)k=1;uu=get(gcf,'userdata');ifnargin==0,[x,y,k]=ginput(1);uu{3}=x;set(gcf,'userdata',uu);endifk==1ifx<0,x=0.1;endifx>1,x=1;endxx=[0];yy=[1];x0=0;x1=x;y1=1;while(x1<=1+x)xx=[xxx1];y1=~y1;yy=[yyy1];x0=x1;x1=x1+x;enddx=1/50;xx_l=[0:dx:1,xx];xx_l=sort(xx_l);yy_l=interp1(xx,yy,xx_l);h_mark=line([
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理基礎(chǔ)知識培訓(xùn)課件
- 環(huán)境藝術(shù)設(shè)計創(chuàng)業(yè)創(chuàng)新
- 財務(wù)管理外包合同樣本
- 設(shè)備租賃合同樣本簡明版
- 電影金融知識分析
- 藥物過量護(hù)理個案分析
- 智能城市共建合作框架協(xié)議
- 舞臺行業(yè)基本情況介紹
- 市場拓展合同合作計劃
- 春節(jié)后回復(fù)生產(chǎn)安全教育
- 2025年國家電投集團(tuán)珠海橫琴熱電有限公司招聘筆試參考題庫附帶答案詳解
- 河南鄭州航空港區(qū)國際教育集團(tuán)招聘考試真題2024
- 中小學(xué)校長在教師大會上講話:以八項規(guī)定精神引領(lǐng)教育高質(zhì)量發(fā)展根深?重明?規(guī)立?法新?行遠(yuǎn)
- 2025山東航空股份限公司社會招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年開封尉氏縣事業(yè)單位招聘工作人員筆試真題
- 全球化背景下的中國外交政策試題及答案
- 食品安全管理制度打印版
- 建筑公司管理制度大全
- GB/T 45251-2025互聯(lián)網(wǎng)金融個人網(wǎng)絡(luò)消費信貸貸后催收風(fēng)控指引
- 西交大政治考題及答案
- 鐵路施工安全教育培訓(xùn)
評論
0/150
提交評論