資源描述:
《圖形用戶界(GUI)設(shè)計(jì)舉例.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、圖形用戶界面(GUI)設(shè)計(jì)舉例Tags:MATLABMATLAB??圖形用戶界面圖形用戶界面??GUIGUI??設(shè)計(jì)舉例設(shè)計(jì)舉例??Time?:?2005-2-2118:25:39??
2、??Views?:?756??
3、??FontSize?:?Large?Medium?Small??
4、??Category?:?畢業(yè)設(shè)計(jì),留底回憶 前面我們已經(jīng)大概的了解了MATLAB環(huán)境下的圖形用戶界面(GUI)設(shè)計(jì),下面便通過具體的例子來演示在MATLAB環(huán)境下圖形用戶界面設(shè)計(jì)的方法與思想?! ATLAB的圖形用戶界面設(shè)計(jì)實(shí)際上是一種面向?qū)ο蟮脑O(shè)計(jì)方法。假設(shè)想建立一個(gè)圖形界面來顯
5、示和處理二維圖形的顏色、線型及數(shù)據(jù)點(diǎn)的圖標(biāo)。要求其基本功能是: (1)建立一個(gè)主坐標(biāo)系,用來顯示要繪制的二維圖形; ?。?)建立一個(gè)列表框,允許用戶選擇不同的著色方法; (3)建立一組按扭,用于處理二維圖形線型和數(shù)據(jù)點(diǎn)的圖標(biāo); (4)為圖形界面加入菜單項(xiàng),用于決定坐標(biāo)軸是否顯示及坐標(biāo)軸上是否需要網(wǎng)格; ?。ˋ)最初圖形界面的設(shè)想如下圖所示: ?。˙)根據(jù)上面的設(shè)想,下面我們就來制作它的圖形用戶界面: 首先,我們先來看其圖形窗口的設(shè)置。在MATLAB命令窗口中選擇菜單可獲得一個(gè)標(biāo)準(zhǔn)MATLAB的圖形窗口,但我們可采用如下命令使得打開窗口的形式更富于變化: 窗
6、口句柄=figure(屬性1,屬性值1,屬性2,屬性值2,……);通過這樣的方式可以很容易地打開一個(gè)新的圖形窗口,并返回該窗口的句柄,以后我們可以方便地對(duì)它進(jìn)行進(jìn)一步修正,窗口的屬性諸如顏色(Color),標(biāo)題名(Name)、位置(Position)等,都可根據(jù)需要設(shè)定。若要改變窗口的某些屬性,則可通過調(diào)set()函數(shù)來完成。這樣我們就得到其窗口生成的程序如下:yWin=figure('Position',[100,100,410,310],'Name','對(duì)MATLAB繪圖功能選項(xiàng)的演示(2003/3/21)','Menubar','none','Resize','
7、off','pointer','custom','numbertitle','off'); 接下來我們看起菜單項(xiàng)的加入。我們已建立了一個(gè)圖形窗口,下面給它加入菜單項(xiàng)?! 〔藛卧O(shè)置是由uimenu()函數(shù)來完成的,該函數(shù)調(diào)用格式為: 菜單項(xiàng)句柄=uimenu(窗口句柄,屬性1,屬性值1,屬性2,屬性值2,……); 還可在某一個(gè)菜單條下定義一個(gè)新的子菜單條: 子菜單句柄=uimenu(菜單項(xiàng)句柄,屬性1,屬性值1,屬性2,屬性值2,……); uimenu()函數(shù)的屬性最基本的有: 提示名稱(Label):可以是任意一個(gè)字符串,在菜單項(xiàng)提示的字符串中允許使用下劃
8、線&標(biāo)志,這樣可用鍵盤容易地激活相應(yīng)的菜單項(xiàng)?! 』卣{(diào)函數(shù)(Call):可以是一個(gè)函數(shù)名稱(用引號(hào)括起),也可以是一組MATLAB命令。在該菜單條被選中后,MATLAB自動(dòng)調(diào)用此回調(diào)函數(shù)來做出菜單項(xiàng)的響應(yīng),實(shí)現(xiàn)某一功能。在產(chǎn)生下拉菜單時(shí)“call”選項(xiàng)可省略,因?yàn)檫@時(shí)可以直接打開下一級(jí)菜單,而不是側(cè)重對(duì)某一函數(shù)進(jìn)行響應(yīng)。其菜單項(xiàng)生成的程序如下:ymenu001=uimenu(yWin,'label','Grid');ymenu0011=uimenu(ymenu001,'label','Gridon','callback','Gridon');ymenu0011=uim
9、enu(ymenu001,'label','Gridoff','callback','Gridoff');ymenu002=uimenu(yWin,'label','Axes');ymenu0021=uimenu(ymenu002,'label','Axeson','callback','set(gca,''visible'',''on'')');ymenu0021=uimenu(ymenu002,'label','Axesoff','callback','set(gca,''visible'',''off'')'); 其次我們再來設(shè)定其控件設(shè)計(jì)技術(shù)。MATLAB提
10、供uicontrol命令來實(shí)現(xiàn)控件設(shè)計(jì)。在圖形窗口或?qū)υ捒虼翱谏系母鞣N控件均可以由該命令實(shí)現(xiàn)。用Chandle=uicontrol(窗口句柄,‘屬性名’,屬性值設(shè)置,……); 設(shè)置的屬性值在窗口句柄所指的窗口中實(shí)現(xiàn)一個(gè)控件。其程序如下:CBox=uicontrol(yWin,'style','listbox','Position',[15,240,80,45],'String','red
11、blue
12、black
13、bronze
14、mauve
15、yellow
16、green','Callback',['Colornum=get(CBox,''value'');'