版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MATLAB圖形界面中各對(duì)象關(guān)系根對(duì)象root圖形窗口對(duì)象figure右鍵菜單對(duì)象uicontextmenu菜單對(duì)象uimenu控件對(duì)象uicontrol坐標(biāo)軸對(duì)象axes線對(duì)象line文字對(duì)象text表面圖對(duì)象surface圖像對(duì)象image光源對(duì)象light第1頁(yè)/共48頁(yè) 兩種界面創(chuàng)建方式: 交互式工具創(chuàng)建 命令創(chuàng)建界面第2頁(yè)/共48頁(yè)1、窗口對(duì)象及其屬性設(shè)定 1.1 窗口對(duì)象的建立 hwin=figure(屬性1,屬性值1,屬性2,屬性值2,) hwin為圖形窗口的句柄,matlab環(huán)境允許打開多個(gè)窗口,每個(gè)窗口都對(duì)應(yīng)自己的句柄,通過(guò)該句柄可以進(jìn)一步對(duì)窗口的屬性等進(jìn)行操作。 hwin=
2、gcf 獲得當(dāng)前窗口的句柄。第3頁(yè)/共48頁(yè)1.2 圖形窗口的屬性第4頁(yè)/共48頁(yè) 常用屬性 color屬性 由紅綠藍(lán)三原色組成,取值范圍為0到1。 menubar屬性 設(shè)置菜單條的形式。 MenuBarMenuBar屬性的取值可以是figure(figure(缺省值) )或nonenone。 用來(lái)控制圖形窗口是否應(yīng)該具有菜單條。如果它的屬性值為nonenone,則表示該圖形窗口沒(méi)有菜單條。這時(shí)用戶可以根據(jù)后面將介紹的uimenu()uimenu()函數(shù)來(lái)加入自己的菜單條,如果屬性值為figurefigure,則該窗口將保持圖形窗口默認(rèn)的菜單條,這時(shí)也可以采用uimenu()uimenu()函
3、數(shù)在原默認(rèn)的圖形窗口菜單后面添加新的菜單項(xiàng)。 name屬性 設(shè)置圖形窗口的標(biāo)題欄中標(biāo)題內(nèi)容,其屬性值為一字符串。 numbertitle屬性 是否顯示圖形窗口標(biāo)題欄中的圖形標(biāo)號(hào)。Name屬性的取值可以是任何字符串,它的缺省值為空。這個(gè)字符串作為圖形窗口的標(biāo)題。一般情況下,其標(biāo)題形式為:“Figure 1:字符串。 units屬性 設(shè)定圖形單位。如:pixels(象素點(diǎn))、inches(英寸)、centimeters(厘米)、normalized(歸一值)等第5頁(yè)/共48頁(yè) position屬性 設(shè)定窗口的位置和大小,為14向量,前兩個(gè)值為窗口左下角橫縱坐標(biāo)值,后兩個(gè)元素值為窗口的寬度和高度,其
4、單位由units屬性設(shè)定。 resize屬性 確定是否可以改變圖形窗口的大小。 toolbar屬性 是否顯示工具條。 visible屬性 決定窗口是否為可見(jiàn)。 Pointer屬性 設(shè)置鼠標(biāo)的顯示形式。 第6頁(yè)/共48頁(yè)回調(diào)函數(shù)(callback function) 一旦某一對(duì)象指定的事件發(fā)生,將自動(dòng)調(diào)用某指定的函數(shù),它可以是matlab文件,也可以是一組matlab程序。 CloseRequestFcn關(guān)閉窗口時(shí)響應(yīng)函數(shù) KeyPressFcn鍵盤按下時(shí)響應(yīng)函數(shù) windowButtonDownFcn-鼠標(biāo)按下時(shí)響應(yīng)函數(shù) WindowButtonMotionFcn-鼠標(biāo)移動(dòng)時(shí)響應(yīng)函數(shù) Crea
5、teFcn和DeleteFcn-建立和刪除對(duì)象時(shí)響應(yīng)函數(shù) CallBack-對(duì)象被選中時(shí)響應(yīng)函數(shù) 第7頁(yè)/共48頁(yè)實(shí)例:gwin=figure(visible,off);pauseset(gwin,color,1,0,0,position,100,200,300,300,.name,My program,numbertitle,off,menubar,none);set(gwin,visible,on)set(gwin,windowbuttondownfcn,helpdlg(mouse button down!)set(gwin,keypressfcn,helpdlg(keyboard pre
6、ssed!)第8頁(yè)/共48頁(yè)例1 建立一個(gè)圖形窗口。該圖形窗口沒(méi)有菜單條,標(biāo)題名稱為“我的圖形窗口”,起始于屏幕左下角、寬度和高度分別為450像素點(diǎn)和260像素點(diǎn),背景顏色為綠色,且當(dāng)用戶從鍵盤按下任意一個(gè)鍵時(shí),將在該圖形窗口繪制出正弦曲線,點(diǎn)擊鼠標(biāo)時(shí)繪制余弦曲線。hf=figure(Color,0,1,0,Position,1,1,450,260,. Name,我的圖形窗口,NumberTitle,on,MenuBar,none,. KeyPressFcn,plot(sin(0:0.01:2*pi),WindowButtonDownFcn,plot(cos(0:0.1:2*pi),r*);
7、第9頁(yè)/共48頁(yè)1.3 標(biāo)準(zhǔn)對(duì)話框及其調(diào)用 1. 文件名操作函數(shù) uigetfile() 函數(shù)打開一個(gè)文件進(jìn)行讀、寫的對(duì)話框。 fname,pname=uigetfile(ffilter,strtitle,x,y) ffilter為文件名過(guò)濾器;strtiltle為對(duì)話框窗口標(biāo)題欄的顯示內(nèi)容;x、y為對(duì)話框出現(xiàn)的位置,省略則采用默認(rèn)位置。返回文件名字和路徑第10頁(yè)/共48頁(yè)f,p=uigetfile(*.m;*.txt,請(qǐng)選擇一個(gè)文件)f =fileprint.mp =E:MATLABR11work第11頁(yè)/共48頁(yè) 2. 顏色設(shè)置對(duì)話框 c=uisetcolor; 或 c=uisetcolo
8、r(c0); 函數(shù)返回一個(gè)13的顏色向量,分別對(duì)應(yīng)紅、綠、藍(lán)三原色,按下“取消”按鈕后返回空的向量;如果給出向量c0,則在圖中指向c0所定義的顏色位置,且按下“取消”按鈕時(shí)返回c0的值。第12頁(yè)/共48頁(yè) 3.字體設(shè)置對(duì)話框 h_Font=uisetfont 或 h_Font=uisetfont(h_Text,strTitle) h_Font為字體屬性的結(jié)構(gòu)體;h_Text為要設(shè)置的字符句柄,strTitle為對(duì)話框的標(biāo)題欄內(nèi)容。s=uisetfonts = FontName: 楷體_GB2312 FontUnits: points FontSize: 42 FontWeight: bold
9、FontAngle: normal第13頁(yè)/共48頁(yè) 4. 警告與錯(cuò)誤信息對(duì)話框warndlg和 errordlg函數(shù),格式: warndlg(警告信息,對(duì)話框名字) errordlg(錯(cuò)誤信息,對(duì)話框名字) 二者的顯示圖標(biāo)不同。 例:h=warndlg(error:,code1111.,Warning)h=errordlg(error:,code 1111.,Error) 第14頁(yè)/共48頁(yè) 5. 幫助信息對(duì)話框 與警告、錯(cuò)誤信息對(duì)話框基本一致,僅僅是圖標(biāo)的不同。 例: h=helpdlg(幫助信息:,幫助信息對(duì)話框和警告錯(cuò)誤對(duì)話框基本一致,只是圖標(biāo)不同!,幫助)第15頁(yè)/共48頁(yè) 6.通用
10、信息框 msgbox(顯示信息,標(biāo)題,圖標(biāo)) 圖標(biāo)包括:Error、Help、Warn以及Custom,如果缺省則為None。data=1:64;data=(data*data)/64;msgbox(This is an example of msgbox!,custom ico,custom,data,hot(64)第16頁(yè)/共48頁(yè)1.4 Matlab圖形界面基本控件 1. 常用控件靜態(tài)文本static text 一般用來(lái)作為信息提示用。編輯框edit text 讀取用戶數(shù)據(jù)的文字窗口。面板 panel 概括一組控件,也可以修飾用。列表框listbox 包含多個(gè)選項(xiàng)供用戶選擇。第17頁(yè)/共
11、48頁(yè)滾動(dòng)條slider 圖示某個(gè)范圍。按鈕pushbutton 其上的字符說(shuō)明其作用。切換按鈕toggle button 兩狀態(tài)按鈕,單擊改變其狀態(tài)。收音機(jī)按鈕radiobutton 一組選項(xiàng),其中只能有一個(gè)被選中。復(fù)選框check button 一組選項(xiàng),可以選擇多項(xiàng)。彈出式菜單popupmenu 選中時(shí)打開一個(gè)列表。第18頁(yè)/共48頁(yè)2.2 控件對(duì)象的屬性 控件對(duì)象的屬性分為兩大類: 第一類是所有控件對(duì)象都具有的公共屬性 第二類是把控件對(duì)象作為圖形對(duì)象所具有的專有特性第19頁(yè)/共48頁(yè)(1) 公共屬性 對(duì)象常用的公共屬性: Children屬性: 取值為空陣,控件對(duì)象沒(méi)有子對(duì)象 Pare
12、nt屬性:某個(gè)圖形窗口的句柄值 Tag屬性:取值為字符串,定義了該控件的一個(gè)標(biāo)識(shí)值,所有 程序通過(guò)標(biāo)識(shí)值來(lái)找出控件對(duì)象 Type屬性 :取值總是uicontrol,表明圖形對(duì)象的類型 UserData屬性: 一個(gè)矩陣,可以在此屬性保存與該控件對(duì)象相 關(guān)的重要數(shù)據(jù)或信息,借此傳遞數(shù)據(jù)或信息 Visible屬性: 可視化與否 第20頁(yè)/共48頁(yè)2.控件的常用屬性Units與 position屬性 意義同上,這里的位置是相對(duì)該窗口的左下角;String屬性 標(biāo)注在控件上,用來(lái)說(shuō)明或提示;Callback屬性 實(shí)現(xiàn)該控件的實(shí)質(zhì)性功能;Enable屬性 該控件的使能狀態(tài)on或off tag 屬性 同上
13、第21頁(yè)/共48頁(yè) 例1:h_main=figure(name,a demo of gui design,menubar,none, numbertitle,off,position,100 100 300 100);h_edit=uicontrol(style,edit,backgroundcolor,1 1 1,position,20 20 50 20,. tag,myedit,string,1,horizontalalignment,left);h_but1=uicontrol(style,pushbutton,position,20 50 50 20,string,INC,. call
14、back,v=eval(get(h_edit,string);,. set(h_edit,string,int2str(v+1););h_but2=uicontrol(style,pushbutton,position,80 50 50 20,string,DEC,. callback,v=eval(get(h_edit,string);,set(h_edit,string,int2str(v-1););第22頁(yè)/共48頁(yè)設(shè)計(jì)為函數(shù)文件:function gui_counter1()%gui_counter is a demo of gui design.h_main=figure(name,
15、a demo of gui design,menubar,none,. numbertitle,off,position,100 100 300 100);h_edit=uicontrol(style,edit,backgroundcolor,1 1 1,position,20 20 50 20,. tag,myedit,string,1,horizontalalignment,left);h_but1=uicontrol(style,pushbutton,position,20 50 50 20,string,INC,. callback,h=findobj(gcf,tag,myedit);
16、,v=eval(get(h,string);,. set(h,string,int2str(v+1););h_but2=uicontrol(style,pushbutton,position,80 50 50 20,string,DEC,. callback,h=findobj(gcf,tag,myedit);,v=eval(get(h,string);,. set(h,string,int2str(v-1););第23頁(yè)/共48頁(yè) 例2function gui_demo()%GUI_demo is another demo of GUI design.h_main=figure(units,
17、normalized,position,0.3 0.3 0.5 0.4,. name,GUI demostration,numbertitle,off);h_axis=axes(units,normalized,position,0.3 0.15 0.6 0.7,. tag,axplot,xlim,0 10,ylim,-1 1);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,pushbutt
18、on,units,normalized,. position,0.1 0.6 0.06 0.1,cdata,bmp1,. callback,zoom on,tooltipstring,Enable zooming);h_2=uicontrol(style,pushbutton,units,normalized,. position,0.04 0.45 0.06 0.1,cdata,bmp2,. callback,zoom xon,tooltipstring,Enable zoom on x-axis only);h_3=uicontrol(style,pushbutton,units,norm
19、alized,. position,0.16 0.45 0.06 0.1,cdata,bmp3,. callback,zoom yon,tooltipstring,Enable zoom on y-axis only);h_4=uicontrol(style,pushbutton,units,normalized,. position,0.1 0.3 0.06 0.1,cdata,bmp4,. callback,zoom off,tooltipstring,Disable zooming);第24頁(yè)/共48頁(yè)第25頁(yè)/共48頁(yè) 1.5. 坐標(biāo)軸對(duì)象建立坐標(biāo)軸對(duì)象使用axes函數(shù),調(diào)用它的命令形
20、式為:句柄變量=axes(屬性名1,屬性值1,屬性名2,屬性值2,)MATLAB為每個(gè)坐標(biāo)軸對(duì)象提供了很多屬性。除公共屬性外,還有其他常用屬性。第26頁(yè)/共48頁(yè) 例 利用坐標(biāo)軸對(duì)象實(shí)現(xiàn)圖形窗口的任意分割。 程序如下(my_figure.m): clf; %清圖形窗口 x=linspace(0,2*pi,20); y=sin(x); figure axes(Posi,0.2,0.2,0.2,0.7); plot(y,x); title(sin(x)-1); axes(Posi,0.4,0.5,0.2,0.09); stairs(x,y); title(sin(x)-2); axes(Posi,
21、0.55,0.6,0.25,0.3); stem(x,y);title(sin(x)-3); axes(Posi,0.55,0.2,0.25,0.2); stem(x,y); title(sin(x)-4); 第27頁(yè)/共48頁(yè) 1.6. 曲線對(duì)象 建立曲線對(duì)象使用line函數(shù),調(diào)用它的命令形式為: 句柄變量=line(x,y,z,屬性名1,屬性值1,屬性名2,屬性值2,) 其中對(duì)x,y,z的解釋與高層曲線函數(shù)plot和plot3等一樣,其余的解釋與前面介紹過(guò)的figure和axes函數(shù)類似。每個(gè)曲線對(duì)象也具有很多屬性。除公共屬性外,還有其他常用屬性。第28頁(yè)/共48頁(yè) 1.7. 文字對(duì)象 使
22、用text函數(shù)可以根據(jù)指定位置和屬性值添加文字說(shuō)明,并保存句柄。調(diào)用該函數(shù)的命令形式為: 句柄變量=text(x,y,z,說(shuō)明文字,屬性名1,屬性值1,屬性名2,屬性值2,) 其中說(shuō)明文字中除使用標(biāo)準(zhǔn)的ASCII字符外,還可使用LATEX格式的控制字符。 除公共屬性外,文字對(duì)象還有其他常用屬性。第29頁(yè)/共48頁(yè) 1.8. 曲面對(duì)象 建立曲面對(duì)象使用surface函數(shù),調(diào)用它的命令形式為: 句柄變量=surface(x,y,z,屬性名1,屬性值1,屬性名2,屬性值2,) 其中對(duì)x,y,z的解釋與高層曲面函數(shù)mesh和surf等一樣,其余的解釋與前面介紹過(guò)的figure和axes等函數(shù)類似。 每
23、個(gè)曲面對(duì)象也具有很多屬性。除公共屬性外,還有其他常用屬性。第30頁(yè)/共48頁(yè) 例 x,y=meshgrid(-2:.4:2); z=x.*exp(-x.2-y.2); fh=figure(Position,350 275 400 300,Color,w); ah=axes(color,.8 .8 .8,XTick,-2 -1 0 1 2,YTick,-2 -1 0 1 2); sh=surface(Xdata,x,Ydata,y,Zdata,z,. Facecolor,get(ah,Color)+.1,Edgecolor,k,Marker,o,. MarkerFaceColor,.5 1 .8
24、5);第31頁(yè)/共48頁(yè)surf(x,y,z)第32頁(yè)/共48頁(yè) 例 利用曲面對(duì)象繪制三維曲面z=sin(y)cos(x)。程序如下: x=0:0.1:2*pi; x,y=meshgrid(x); z=sin(y).*cos(x); axes(view,-37.5,30); hs=surface(x,y,z,FaceColor,w,EdgeColor,flat); grid on; xlabel(x-axis) ylabel(y-axis) zlabel(z-axis); title(mesh-surf); pause set(hs,FaceColor,flat); 0246802468-1-
25、0.500.51x-axismesh-surfy-axisz-axis0246802468-1-0.500.51mesh-surfz-axis0246802468-1-0.500.51mesh-surfz-axis第33頁(yè)/共48頁(yè)2.菜單設(shè)計(jì)第34頁(yè)/共48頁(yè) MATLAB MATLAB的各個(gè)圖形窗口有自己的菜單欄,包括FileFile、EditEdit、WindowsWindows和HelpHelp等菜單項(xiàng)。為了建立用戶自己的菜單系統(tǒng),可以先將圖形窗口的MenuBarMenuBar屬性事先設(shè)置為nonenone, 以取消圖形窗口缺省的菜單,然后再建立用戶自己的菜單。2、菜單設(shè)計(jì)第35頁(yè)/共
26、48頁(yè)1.1.建立用戶菜建立用戶菜單單 要建立用戶菜單可用uimenuuimenu函數(shù),因其調(diào)用方法不同,該函數(shù)可以用于建立菜單條中的菜單項(xiàng)和子菜單中的菜單項(xiàng)。建立菜單條的函數(shù)調(diào)用形式為: 菜單項(xiàng)句柄=uimenu(=uimenu(圖形窗口句柄,屬性名1 1,屬性值1 1,屬性名2 2,屬性值2 2,) ) 建立子菜單的函數(shù)調(diào)用形式為: 子菜單句柄=uimenu(=uimenu(父菜單句柄,屬性名1 1,屬性值1 1,屬性名2 2,屬性值2 2,) )2、菜單設(shè)計(jì)第36頁(yè)/共48頁(yè)2.2.菜單對(duì)象常用屬性菜單對(duì)象常用屬性 (1 1) TagTag屬性 TagTag屬性的取值是字符串,它定義了該
27、菜單對(duì)象的一個(gè)標(biāo)識(shí)值。定義了TagTag屬性后,在任何程序中都可以通過(guò)這個(gè)標(biāo)識(shí)值找出該菜單對(duì)象。 (2 2) TypeType屬性 TypeType屬的取值總是uimenuuimenu,這個(gè)屬性值標(biāo)明圖形對(duì)象的類型。對(duì)菜單對(duì)象,其類型就是uimenuuimenu,用戶不能改寫這個(gè)屬性。 (3 3) UserDataUserData屬性 UserDataUserData屬性的取值是一個(gè)矩陣,缺省值為空矩陣,用戶可以在這個(gè)屬性中保存與該菜單對(duì)象相關(guān)的重要數(shù)據(jù)或信息,借此可以達(dá)到傳遞數(shù)據(jù)或信息的目的。可以用setset和getget函數(shù)訪問(wèn)該屬性。二、菜單設(shè)計(jì)第37頁(yè)/共48頁(yè) 菜單條中含有File
28、和Help兩個(gè)菜單項(xiàng)。如果選擇File中的New選項(xiàng),則將顯示New Item字樣,如果選擇File中的Open選項(xiàng),則將顯示出Open Item字樣。File中的Save菜單項(xiàng)初始時(shí)處于禁選狀態(tài),在選擇Help選項(xiàng)之后將此菜單項(xiàng)恢復(fù)成可選狀態(tài),如果選擇File中的Save As選項(xiàng),則將顯示Save As Item字樣。如果選擇File中的Exit選項(xiàng),則將關(guān)閉當(dāng)前窗口。如果選擇Help中About 選項(xiàng),則將顯示Help Item字樣,并將Save 菜單設(shè)置成可選狀態(tài)。【例2】 建立一個(gè)菜單系統(tǒng)。二、菜單設(shè)計(jì)第38頁(yè)/共48頁(yè) 程序如下: screen=get(0,ScreenSize); W=screen(3);H=screen(4); hf=figure(Color,1,1,1,Position,1,1,0.4*W,0.3*H,. Name,菜單設(shè)計(jì)示例一,NumberTitle,off,MenuBar,none); hfile
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025河北建筑安全員考試題庫(kù)附答案
- 2025年河北省安全員-C證(專職安全員)考試題庫(kù)
- 廣州衛(wèi)生職業(yè)技術(shù)學(xué)院《流行音樂(lè)賞析專業(yè)理論教學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年廣東省建筑安全員考試題庫(kù)附答案
- 2025甘肅省安全員-A證考試題庫(kù)附答案
- 2025年-河北省安全員-C證考試題庫(kù)
- 2025重慶市安全員知識(shí)題庫(kù)
- 《手的運(yùn)動(dòng)》課件
- 課件:新課標(biāo)《信用工具和外匯》
- 《PICC置管及其維護(hù)》課件
- 學(xué)校安全事故報(bào)告和調(diào)查處理制度(四篇)
- 石油化工管道布置設(shè)計(jì)規(guī)范
- 阿爾茨海默病(AD)的影像學(xué)診斷
- JJF 1622-2017太陽(yáng)電池校準(zhǔn)規(guī)范:光電性能
- GB/T 31.1-2013六角頭螺桿帶孔螺栓
- 西交大少年班英語(yǔ)考試試題
- 初中生物人教七年級(jí)上冊(cè)(2023年更新) 生物圈中的綠色植物18 開花和結(jié)果
- 水電解質(zhì)及酸堿平衡的業(yè)務(wù)學(xué)習(xí)
- CSCEC8XN-SP-安全總監(jiān)項(xiàng)目實(shí)操手冊(cè)
- 口腔衛(wèi)生保健知識(shí)講座班會(huì)全文PPT
- 成都市產(chǎn)業(yè)園區(qū)物業(yè)服務(wù)等級(jí)劃分二級(jí)標(biāo)準(zhǔn)整理版
評(píng)論
0/150
提交評(píng)論