版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、MATLAB程序設(shè)計教程(第二版)劉衛(wèi)國 主編 中國水利水電出版社第第1010章章 MATLABMATLAB圖形用戶界面設(shè)計圖形用戶界面設(shè)計u MATLAB用戶界面對象的組成u MATLAB菜單設(shè)計u MATLAB對話框設(shè)計u MATLAB圖形用戶界面設(shè)計工具10.1 用戶界面對象用戶界面對象 在MATLAB中,每一個圖形用戶界面都是由若干個不同的用戶界面對象(UI)組成的。用戶界面對象也是有層次的,其層次結(jié)構(gòu)如圖所示。10.2.1 建立用戶菜單要建立用戶菜單可用uimenu函數(shù),因其調(diào)用方法不同,該函數(shù)可以用于建立一級菜單項和子菜單項。 建立一級菜單項的函數(shù)調(diào)用格式為: 一級菜單項句柄=ui
2、menu(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,) 建立子菜單項的函數(shù)調(diào)用格式為: 子菜單項句柄=uimenu(一級菜單項句柄,屬性名1,屬性值1,屬性名2,屬性值2,)10.2 菜單設(shè)計10.1.2 菜單對象常用屬性 菜單對象具有Children、Parent、Tag、Type、UserData、Visible等公共屬性,除公共屬性外,還有一些常用的特殊屬性。 菜單條中含有3個菜單項:Plot、Option和Quit。Plot中有Sine Wave和Cosine Wave兩個子菜單項,分別控制在本圖形窗口畫出正弦和余弦曲線。Option菜單項的內(nèi)容如圖10-1所示,其中Gri
3、d on和Grid off控制給坐標軸加網(wǎng)格線,Box on和Box off控制給坐標軸加邊框,而且這4項只有在畫有曲線時才是可選的。Window Color控制圖形窗口背景顏色。Quit控制是否退出系統(tǒng)。例10-1 建立圖10-1所示的圖形演示系統(tǒng)菜單。例10-1源程序:設(shè)置窗口源程序:設(shè)置窗口lscreen=get(0,ScreenSize);lW=screen(3);lH=screen(4);lfigure(Color,1,1,1,Position,0.2*H,0.2*H,0.5*W,0.3*H,.l Name, 圖形演示系統(tǒng),NumberTitle,off,MenuBar,none);
4、例10-1源程序:設(shè)置源程序:設(shè)置PLOT菜單項菜單項l%設(shè)置PLOT菜單項lhplot=uimenu(gcf,Label,&Plot);luimenu(hplot,Label,Sine Wave,Call,.lt=-pi:pi/20:pi;,plot(t,sin(t);,.l set(hgon,Enable,on);,.lset(hgoff,Enable,on);,.l set(hbon,Enable,on);,.lset(hboff,Enable,on););luimenu(hplot,Label,Cosine Wave,Call,.lt=-pi:pi/20:pi;,plot(t,cos(
5、t);,.l set(hgon,Enable,on);,.lset(hgoff,Enable,on);,.l set(hbon,Enable,on);,.lset(hboff,Enable,on););l%設(shè)置Option菜單lhoption=uimenu(gcf,Label,&Option);lhgon=uimenu(hoption,Label,&Grid on,.lCall,grid on,Enable,off);lhgoff=uimenu(hoption,Label,&Grid off,.lCall,grid off,Enable,off);lhbon=uimenu(hoption,La
6、bel,&Box on,.lseparator,on,Call,box on,Enable,off);lhboff=uimenu(hoption,Label,&Box off,.lCall,box off,Enable,off);lhwincor=uimenu(hoption,Label,&Window Color,Separator,on);luimenu(hwincor,Label,&Red,Accelerator,r,.lCall,set(gcf,Color,r););luimenu(hwincor,Label,&Blue,Accelerator,b,.lCall,set(gcf,Col
7、or,b););luimenu(hwincor,Label,&Yellow,Call,.lset(gcf,Color,y);); luimenu(hwincor,Label,&White,Call,.lset(gcf,Color,w);); 設(shè)置設(shè)置Quit菜單菜單l%設(shè)置Quit菜單luimenu(gcf,Label,&Quit,Call,close(gcf); 10.2.3 快捷菜單快捷菜單是用鼠標右鍵單擊某對象時在屏幕上彈出的菜單。這種菜單出現(xiàn)的位置是不固定的,而且總是和某個圖形對象相聯(lián)系。在MATLAB中,可以使用uicontextmenu函數(shù)和圖形對象的UIContextMenu屬性
8、來建立快捷菜單,具體步驟為:(1) 利用uicontextmenu函數(shù)建立快捷菜單。(2) 利用uimenu函數(shù)為快捷菜單建立菜單項。(3) 利用set函數(shù)將該快捷菜單和某圖形對象聯(lián)系起來。 例10-2 繪制曲線y=2sin(5x)sinx,并建立一個與之相聯(lián)系的 快捷菜單,用以控制曲線的線型和曲線寬度。x=0:pi/100:2*pi;y=2*sin(5*x).*sin(x);hl=plot(x,y);hc=uicontextmenu; %建立快捷菜單hls=uimenu(hc,Label,線型); %建立菜單項hlw=uimenu(hc,Label,線寬);uimenu(hls,Label,
9、虛線,Call,set(hl,LineStyle,:););uimenu(hls,Label,實線,Call,set(hl,LineStyle,-););uimenu(hlw,Label加寬,Call,set(hl,LineWidth,2););uimenu(hlw,Label,變細,Call,set(hl,LineWidth,0.5););set(hl,UIContextMenu,hc); %連接快捷菜單和曲線10.3 對話框設(shè)計 對話框的控件:對話框的控件:在對話框上有各種各樣的控件,利用這些控件可以實現(xiàn)有關(guān)控制。 按鈕(Push Button)雙位按鈕(Toggle Button)單選按
10、鈕(Radio Button) 復(fù)選框(Check Box) 列表框(List Box) 彈出框(Popup Menu) 編輯框(Edit Box) 滑動條(Slider) 靜態(tài)文本(Static Text) 邊框(Frame)10.3.2 控件的操作1建立控件對象 MATLAB提供了用于建立控件對象的函數(shù)uicontrol,其調(diào)用格式為: 對象句柄=uicontrol(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,)其中各個屬性名及可取的值和前面介紹的uimenu函數(shù)相似,但也不盡相同。2控件對象的屬性 MATLAB的10種控件對象使用相同的屬性類型,但是這些屬性對于不同類型的控件對
11、象,其含義不盡相同。除Children、Parent、Tag、Type、UserData、Visible等公共屬性外,還有一些常用的特殊屬性。10.3.3 對話框設(shè)計示例例例10-3 建立如圖建立如圖10-11所示的數(shù)制轉(zhuǎn)換對話框。所示的數(shù)制轉(zhuǎn)換對話框。 在左邊輸入一個十進制整數(shù)和216之間的數(shù),單擊“轉(zhuǎn)換”按鈕能在右邊得到十進制數(shù)所對應(yīng)的216進制字符串,單擊“退出”按鈕退出對話框。lhf=figure(Color,0,1,1,Position,100,200,400,200,.l Name,數(shù)制轉(zhuǎn)換,NumberTitle,off,MenuBar,none);luicontrol(hf,S
12、tyle,Text, Units,normalized,.l Position,0.05,0.8,0.45,0.1,Horizontal,center,.l String,輸入框,Back,0,1,1);luicontrol(hf,Style,Text,Position,0.5,0.8,0.45,0.1,.l Units,normalized,Horizontal,center,.l String,輸出框,Back,0,1,1);luicontrol(hf,Style,Frame,Position,0.04,0.33,0.45,0.45,.l Units,normalized,Back,1,1
13、,0);luicontrol(hf,Style,Text,Position,0.05,0.6,0.25,0.1,.l Units,normalized,Horizontal,center,.l String,十進制數(shù),Back,1,1,0);luicontrol(hf,Style,Text,Position,0.05,0.4,0.25,0.1,.l Units,normalized,Horizontal,center,.l String,216進制數(shù),Back,1,1,0);lhe1=uicontrol(hf,Style,Edit,Position,0.25,0.6,0.2,0.1,.l Un
14、its,normalized,Back,0,1,0);lhe2=uicontrol(hf,Style,Edit,Position,0.25,0.4,0.2,0.1,.l Units,normalized,Back,0,1,0);luicontrol(hf,Style,Frame,Position,0.52,0.33,0.45,0.45,.l Units,normalized,Back,1,1,0);lht=uicontrol(hf,Style,Text,Position,0.6,0.5,0.3,0.1,.l Units,normalized,Horizontal,center,Back,0,1
15、,0);lCOMM=n=str2num(get(he1,String);,.lb=str2num(get(he2,String);,.l dec=trdec(n,b);,set(ht,string,dec);luicontrol(hf,Style,Push,Position,0.18,0.1,0.2,0.12,.l String,轉(zhuǎn)換,Units,normalized,Call,COMM);luicontrol(hf,Style,Push,Position,0.65,0.1,0.2,0.12,.l String,退出,Units,normalized,Call,close(hf);例例10-4
16、 建立如圖建立如圖10-12所示的圖形演示對話框。所示的圖形演示對話框。 在編輯框輸入繪圖命令,當(dāng)單擊“繪圖”按鈕時,能在左邊坐標軸繪制所對應(yīng)的圖形,彈出框提供色圖控制,列表框提供坐標網(wǎng)格線和坐標邊框控制。lclf;lset(gcf,Unit,normalized,Position,0.2,0.3,0.55,0.30);lset(gcf,Menubar,none,Name,NumberTitle,off);laxes(Position,0.05,0.15,0.55,0.7);luicontrol(gcf,Style,text, Unit,normalized,.l Posi,0.63,0.85
17、,0.2,0.1,String,.l,Horizontal,center);lhedit=uicontrol(gcf,Style,edit,Unit,normalized,.lPosi,0.63,0.15,0.2,0.68,.l Max,2); %Max2Max-Min1lhpopup=uicontrol(gcf,Style,popup,Unit,normalized,.lPosi,0.85,0.8,0.15,0.15,String,.lSpring|Summer|Autumn|Winter,Call,.lcomm(hedit,hpopup,hlist);lhlist=uicontrol(gc
18、f,Style,list,Unit,normalized,.lPosi,0.85,0.55,0.15,0.25,String,.lGrid on|Grid off|Box on|Box off,Call,.lcomm(hedit,hpopup,hlist);lhpush1=uicontrol(gcf,Style,push,Unit,normalized,.l Posi,0.85,0.35,0.15,0.15,String,.l ,Call,comm(hedit,hpopup,hlist);luicontrol(gcf,Style,push,Unit,normalized,.l Posi,0.8
19、5,0.15,0.15,0.15,String,.l ,Call,close all);lfunction comm(hedit,hpopup,hlist)lcom=get(hedit,String);ln1=get(hpopup,Value);ln2=get(hlist,Value);lif isempty(com) %-leval(com); %-l chpop=spring,summer,autumn,winter;l chlist=grid on,grid off,box on,box off;l colormap(eval(chpopn1);l eval(chlistn2);lend
20、 菜單編輯器(Menu Editor):創(chuàng)建、設(shè)計、修改下拉式菜單和快捷菜單。對象屬性查看器(Property Inspector):可查看每個對象的屬性值,也可修改設(shè)置對象的屬性值。位置調(diào)整工具(Alignment Tool):可利用該工具左右、上下對多個對象的位置進行調(diào)整。對象瀏覽器(Object Browser):可觀察當(dāng)前設(shè)計階段的各個句柄圖形對象。Tab順序編輯器(Tab Order Editor):通過該工具,設(shè)置當(dāng)用戶按下鍵盤上的Tab鍵時,對象被選中的先后順序。10.3 圖形用戶界面設(shè)計工具MATLAB的用戶界面設(shè)計工具共有5個,它們是:10.3.1 圖形用戶界面設(shè)計窗口1GU
21、I設(shè)計模板在MATLAB主窗口中,選擇File菜單中的New菜單項,再選擇其中的GUI命令,就會顯示圖形用戶界面的設(shè)計模板。MATLAB為GUI設(shè)計一共準備了4種模板,分別是Blank GUI(默認) 、GUI with Uicontrols(帶控件對象的GUI模板) 、GUI with Axes and Menu(帶坐標軸與菜單的GUI模板)與Modal Question Dialog(帶模式問話對話框的GUI模板)。2GUI設(shè)計窗口在GUI設(shè)計模板中選中一個模板,然后單擊OK按鈕,就會顯示GUI設(shè)計窗口。選擇不同的GUI設(shè)計模式時,在GUI設(shè)計窗口中顯示的結(jié)果是不一樣的。GUI設(shè)計窗口由菜
22、單欄、工具欄、控件工具欄以及圖形對象設(shè)計區(qū)等部分組成。GUI設(shè)計窗口的菜單欄有File、Edit、View、Layout、Tools和Help 6個菜單項,使用其中的命令可以完成圖形用戶界面的設(shè)計操作。3GUI設(shè)計窗口的基本操作在GUI設(shè)計窗口創(chuàng)建圖形對象后,通過雙擊該對象,就會顯示該對象的屬性編輯器。例如,創(chuàng)建一個Push Button對象,并設(shè)計該對象的屬性值。1.對象屬性查看器利用對象屬性查看器,可以查看每個對象的屬性值,也可以修改、設(shè)置對象的屬性值,從GUI設(shè)計窗口工具欄上選擇Property Inspector命令按鈕,或者選擇View菜單下的Property Inspector子菜
23、單,就可以打開對象屬性查看器。另外,在MATLAB命令窗口的命令行上輸入inspect,也可以看到對象屬性查看器。在選中某個對象后,可以通過對象屬性查看器,查看該對象的屬性值,也可以方便地修改對象屬性的屬性值。10.3.2 常用的圖形用戶界面設(shè)計工具2.菜單編輯器利用菜單編輯器,可以創(chuàng)建、設(shè)置、修改下拉式菜單和快捷菜單。從GUI設(shè)計窗口的工具欄上選擇Menu Editor命令按鈕,或者選擇Tools菜單下的Menu Editor子菜單,就可以打開菜單編輯器。菜單編輯器左上角的第一個按鈕用于創(chuàng)建一級菜單項,第二個按鈕用于創(chuàng)建一級菜單的子菜單。菜單編輯器的左下角有兩個按鈕,選擇第一個按鈕,可以創(chuàng)建下拉式菜單。選擇第二個按鈕,可以創(chuàng)建Context Menu菜單。選擇它后,菜單編輯器左上角的第三個按鈕就會變成可用,單擊它就可以創(chuàng)建Context Menu主菜單。在選中已經(jīng)創(chuàng)建的Context Menu主菜單后,可以單擊第二個按鈕創(chuàng)建選中的Context Menu主菜單的子菜單。與下拉式菜單一樣,選中創(chuàng)建的某個Context Menu菜單,菜單編輯器的右邊就會顯示該菜單的有關(guān)屬性,可以在這里設(shè)置、修改菜單的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 泥工班組承包合同(二零二五年度)2篇
- 2025年存量房買賣合同(帶租賃權(quán)優(yōu)先購買權(quán)條款)4篇
- 二零二四年度養(yǎng)老院場地租賃與養(yǎng)老服務(wù)合同
- Unit 1 School Subjects Let's Spell(說課稿)-2023-2024學(xué)年人教新起點版英語三年級下冊
- 二零二五年度生態(tài)濕地植物種植與養(yǎng)護服務(wù)合同范例4篇
- 2025年度綠色建筑產(chǎn)業(yè)園區(qū)租賃合同3篇
- 二零二五版班組工前會工后會記錄與應(yīng)急管理服務(wù)合同3篇
- 二零二五年度木托盤定制加工合同4篇
- 安徽滬科版八上數(shù)學(xué)試卷
- 糧庫粉塵整改方案
- 三級人工智能訓(xùn)練師(高級)職業(yè)技能等級認定考試題及答案
- 華為全屋智能試題
- 第三單元名著導(dǎo)讀《經(jīng)典常談》知識清單 統(tǒng)編版語文八年級下冊
- 第十七章-阿法芙·I·梅勒斯的轉(zhuǎn)變理論
- 焊接機器人在汽車制造中應(yīng)用案例分析報告
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財務(wù)分析報告
- 無違法犯罪記錄證明申請表(個人)
- 大學(xué)生勞動教育PPT完整全套教學(xué)課件
- 繼電保護原理應(yīng)用及配置課件
評論
0/150
提交評論