matlab用戶圖形界面設計GUI.ppt_第1頁
matlab用戶圖形界面設計GUI.ppt_第2頁
matlab用戶圖形界面設計GUI.ppt_第3頁
matlab用戶圖形界面設計GUI.ppt_第4頁
matlab用戶圖形界面設計GUI.ppt_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第八章,Matlab圖形用戶界面設計,圖形用戶界面(GraphicalUserInterface,GUI)是指由窗口、菜單、對話框等各種圖形對象組成的用戶界面。Matlab作為功能強大的科學計算軟件,同樣也提供了圖形用戶界面設計功能。在Matlab中,基本的圖形用戶界面對象包含3類:用戶界面控件對象(uicontrol),下拉式菜單對象(uimenu),和快捷菜單對象(uicontextmenu)。根據(jù)這些圖形對象,可以設計出界面友好、操作方便的圖形用戶界面。,一、菜單設計,Matlab用戶菜單對象是圖形窗口的子對象,所以菜單設計總是在某一個圖形窗口中進行。Matlab的圖形窗口有自己的菜單欄,為了建立用戶自己的菜單系統(tǒng),需要先將圖形窗口的MenuBar屬性設置為none,以取消圖形窗口的默認菜單,然后再建立自己的菜單。取消默認菜單:figure(menubar,none),1.建立用戶菜單用戶菜單通常包括一級菜單(菜單條)和二級菜單,有時還需要繼續(xù)建立下級菜單如三級菜單等。而每一級菜單又包括若干菜單項。建立用戶菜單的函數(shù)為:uimenu,根據(jù)不同的調用格式可以創(chuàng)建一級菜單項和子菜單項。建立一級菜單的調用格式:一級菜單項句柄=uimenu(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,)建立子菜單項的調用格式:子菜單項句柄=uimenu(一級菜單項句柄,屬性名1,屬性值1,屬性名2,屬性值2,),區(qū)別:建立一級菜單項時,要給出圖形窗口的句柄值。如果省略了這個句柄值,Matlab就在當前圖形窗口中建立這個菜單項。如果沒有圖形窗口,則會自動打開一個圖形窗口并將該菜單項作為它的菜單對象。而在建立子菜單項時,必須要指定一級菜單項對應的句柄值。如:hm=uimenu(gcf,label,File);hm1=uimenu(hm,label,Save);hm2=uimenu(hm,label,SaveAs);將在當前圖形窗口中建立名為File的菜單,其中Label屬性值File就是菜單的名字,hm是File菜單項的句柄值,供定義該菜單項的子菜單之用。后兩條命令將在File菜單下建立Save和SaveAs兩個子菜單。使用的是File菜單項的句柄值。,2.菜單對象的常用屬性菜單對象具有Children,Parent,Tag,Data,Visible等公共屬性外還有些常用的特殊屬性:(1)Label屬性:該屬性的取值為字符串,用于定義菜單項的名字??梢栽谧址屑?plot(sin(0:0.01:20);)h22=uimenu(h1,label,cos,callback,cla;,plot(cos(0:0.01:20);)h23=uimenu(h1,label,pol,callback,cla;,polar(0:20:360,cos(0:20:360);),例:建立“圖形演示系統(tǒng)”菜單。菜單條上含有3個菜單項,Plot,Option,和Quit。Plot中有SineWave和CosineWave兩個子菜單項,分別畫正弦和余弦曲線。Option中可以提供相關的選項,Quit控制是否退出系統(tǒng)。,Screen=get(0,screensize);W=Screen(3);H=Screen(4);figure(color,1,1,1,position,0.2*H,0.2*H,0.5*W,0.3*W,.Name,圖形演示系統(tǒng),NumberTitle,off,menubar,none);hplot=uimenu(gcf,label,hoption=uimenu(gcf,label,hwincor=uimenu(hoption,label,3.快捷菜單快捷菜單就是用鼠標右鍵單擊對象時彈出的菜單。這種菜單出現(xiàn)的位置是不固定的,且總是和某個圖形對象相聯(lián)系。可以用uicontextmenu函數(shù)和圖形對象的UIContextMenu屬性來建立快捷菜單。步驟如下:(1)利用uicontextmenu函數(shù)建立快捷菜單(2)利用uimenu為快捷菜單建立菜單項(3)利用set函數(shù)將該快捷菜單和某個圖形對象聯(lián)系起來,例:繪制曲線并建立一個與之相聯(lián)系的快捷菜單,用以控制曲線的線型和曲線的寬度。,程序如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);h1=plot(x,y);hc=uicontextmenu;%建立快捷菜單hls=uimenu(hc,Label,線型);%為快捷菜單建立菜單項hlw=uimenu(hc,Label,線寬);uimenu(hls,label,虛線,call,set(h1,linestyle,:);uimenu(hls,label,實線,call,set(h1,linestyle,-);uimenu(hlw,label,加寬,call,set(h1,linewidth,2);uimenu(hlw,label,變細,call,set(h1,linewidth,0.5);set(h1,uicontextmenu,hc)%將該快捷菜單和曲線對象聯(lián)系起來,二、對話框設計,對話框是用戶和計算機進行信息交流的臨時窗口,在現(xiàn)代軟件中有著廣泛的應用。在軟件設計時借助于對話框可以更好的滿足用戶操作需要,使用戶的操作更加靈活。1.對話框控件在對話框上有各種各樣的控件,利用這些控件可以實現(xiàn)有關的控制。先介紹下控件:(1)按鈕pushbutton,按鈕是對話框中最常用的控件對象,一個按鈕代表一種操作,也稱命令按鈕。(2)雙位按鈕togglebutton,這種按鈕有兩種狀態(tài),按下和彈起狀態(tài),每單擊一次其狀態(tài)改變一次。(3)單選按鈕radiobutton,是一種選擇性按鈕,在一組單選按鈕中,只能有一個被選中,如果選中了某一個,則原來被選中的就不再處于被選中的狀態(tài)。(4)復選框checkbox,復選框和單選框相似,也是一組選擇項,被選中的項其小方框中有,復選框一次可以選擇多個。,(5)列表框listbox,列表框列出可供選擇的一些選項。(6)彈出框popupmenu,彈出框平時只顯示當前選項,單擊右端的下拉箭頭即可彈出一個列表框,列出全部選項,作用和列表框類似。(7)編輯框editbox,可供用戶輸入數(shù)據(jù)之用,可在編輯框中提供默認的輸入值,隨后用戶可以修改。(8)滑動條slider,滑動條可以用圖示的方式輸入指定范圍內的一個數(shù)值,可以移動滑動條中間的游標來改變對應的數(shù)值。(9)靜態(tài)文本statictext,是在對話框中顯示的說明性文字,一般用來給用戶提供必要的提示,不能在程序執(zhí)行過程中改變文字說明。(10)邊框frame,主要用于修飾用戶界面,使用戶界面更友好,也可用邊框在圖形窗口中圈出一塊區(qū)域,將某些控件對象組織在這塊區(qū)域中。,2.對話框的設計在matlab中,要設計一個對話框,首先要建立一個圖形窗口,然后在圖形窗口中放置所需要的用戶控件對象。(1)建立控件對象(uicontrol)對象句柄=uicontrol(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,)(2)控件對象的屬性matlab的10種控件對象使用相同的屬性類型,這些屬性對不同類型的控件對象,含義不全相同。Position屬性:取值為一4個元素組成的向量,形式為x,y,w,h。x,y控件對象左下角相對于圖形窗口的橫縱坐標,w,h為控件對象的寬度和高度。它們的單位有units屬性決定。Units屬性:取值可為pixel(像素),nomalized(相對單位),inches,centimeters,points。Callback屬性:取值為字符串,允許用戶建立在控件對象被用戶選中后的響應命令。,String屬性:取值為字符串,定義了控件對象的說明文字。如按鈕上的說明文字,單選/復選按鈕后面的說明文字等。Style屬性:該屬性定義控件對象的類型。取值為push(默認),toggle,radio,check,list,popup,edit,text,slider和frame。Max和min屬性:取值為數(shù)值,默認值分別為1和0,這兩個屬性對不同的控件對象,意義不同:對滑動條對象:Max的值必須必Min的值大,Max定義滑動條的最大值,Min定義滑動條的最小值。對編輯框,如Max-Min1,那么對應的編輯框接受多行字符輸入,如Max-Min1,在列表框中允許多項選擇,如Max-Min=1只允許單項選擇。,Value屬性:該屬性值可以是向量或數(shù)值。其含義依賴于控件對象的類型。對單選/復選框,當處于激活狀態(tài)時,Value值為Max屬性值,反之為Min屬性值。對彈出框,Value值為被選項的序號,對列表框,Value值為列表框中高亮度選項的序號。對滑動條,Value值處于Min和Max之間,由滑動條標尺位置對應的值定義。其它控件對象不使用這個屬性值。其余屬性還有:fontangle,fontname,fontsize,backgroundcolor,forgroundcolor,horizontalalignment(對齊方式)等等。,創(chuàng)建控件對象舉例:1.建立按鈕對象,當單擊該按鈕時繪制正弦曲線,同時建立雙位按鈕,用于控制是否加網(wǎng)格線。pbstart=uicontrol(gcf,style,push,position,40,5,100,25,string,StartPlot,callback,t=0:pi/100:2*pi;plot(t,sin(t);axis(02*pi-11););ptgrid=uicontrol(gcf,style,toggle,position,170510025,string,Grid,call,grid);,2.建立單選按鈕,用來設置圖形窗口的顏色,只能選擇一種。htxt=uicontrol(gcf,style,text,string,ColorOption,Position,20013015020);hr=uicontrol(gcf,style,radio,string,Red,position,20010015025,value,1,callback,set(hr,value,1);,set(hb,value,0);,set(hy,value,0);,set(gcf,color,r);hb=uicontrol(gcf,style,radio,string,Blue,position,2007515025,callback,set(hb,value,1);,set(hr,value,0);,set(hy,value,0);,set(gcf,color,b);hy=uicontrol(gcf,style,radio,string,Yellow,position,2005015025,callback,set(hr,value,0);,set(hb,value,0);,set(hy,value,1);,set(gcf,color,y);,3.建立復選框,可以用來設置圖形窗口的某些屬性,如大小、顏色、標題等。htxt=uicontrol(gcf,style,text,units,normalized,position,.,string,SetWindowsProperties);hp=uicontrol(gcf,style,check,units,normalized,position,.,string,MyPosition,callback,set(gcf,position,10,10,300,250);,ifget(hp,value)=1,set(gcf,position,10,10,600,500),end);,hc=uicontrol(gcf,style,check,units,normalized,position,.,string,MyColor,callback,set(gcf,color,w);,ifget(hc,value)=1,set(gcf,color,g),end);hn=uicontrol(gcf,style,check,units,normalized,position,0.1,0.2,.25,.1,string,MyName,callback,set(gcf,name,復選框未選中);,ifget(hn,value)=1,set(gcf,name,復選框被選中),end);,4.建立下拉列表框,列表中包含一組可供選擇的顏色。當選中某種顏色時,就將圖形窗口的背景設置為該顏色。下拉列表框可選項在string屬性中設置,每項之間用豎線|隔開,并用單引號把所有項括起來。Value的值是彈出式列表中選項的序號,如選的是第二項,則Value值為2.hpop=uicontrol(gcf,style,popup,string,red|blue|green|yellow,position,100,100,100,80,callback,cbcol=R,B,G,Y;,set(gcf,color,cbcol(get(hpop,value);建立列表框和下拉列表框相同style-list。,6.建立一個文本框,并加邊框。如果需要用邊框組織控件對象,必須在定義控件對象之前建立邊框對象,或者說邊框對象必須覆蓋該組中所有的控件對象。為了留出邊框的邊界,邊框對象占用的區(qū)域至少要比該組中所有控件對象占用的區(qū)域大。文本框分多行、單行文本,屬性值Max與Min之差=1時為單行文本,否則為多行文本。ftdir=uicontrol(gcf,style,frame,back,y,position,30,180,120,100);edmulti=uicontrol(gcf,style,edit,string,Matlabisalanguageoftechnicalcomputing,position,50,200,80,55,max,2,back,w);,在下列操作之后,Matlab將執(zhí)行文本框對象Callback屬性定義的操作:(1)改變文本框中的輸入值,并將鼠標移出文本控件對象(2)對單行文本,按下回車鍵,不論文本框中的值是否改變(3)對單行、多行文本框,按住ctrl鍵,再按下回車鍵。對多行文本框,按下回車鍵,可以輸入下一行字符。,7.建立兩個滑動條,分別用于設置圖形窗口的寬度和高度,并利用靜態(tài)文本說明對象,標出滑動條的數(shù)值范圍以及當前值。fig=figure(position,20,20,400,300);hsli1=uicontrol(fig,style,slider,position,50,50,120,20,min,200,max,800,value,400,callback,set(azmcur,string,num2str(get(hsli1,value);,set(gcf,position,20,20,get(hsli1,value),300););hsli2=uicontrol(fig,style,slider,position,240,50,120,20,min,100,max,600,value,300,callback,set(elvcur,string,num2str(get(hsli2,value);,set(gcf,position,20,20,400,ge

溫馨提示

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

評論

0/150

提交評論