資源描述:
《matlab圖形用戶界面設(shè)計(一)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、matlab圖形用戶界面設(shè)計【本章學習目標】●了解圖形對象和圖形句柄的基本概念?!裾莆請D形對象屬性的基本操作?!裾莆绽脠D形對象進行繪圖操作的方法。●掌握GUI開發(fā)環(huán)境(GUIDE)的使用方法?!裾莆崭鞣N控件的屬性和創(chuàng)建方法。●掌握菜單設(shè)計的方法。●掌握回調(diào)函數(shù)的使用方法?!?.1.1圖形對象及其句柄MATLAB的圖形是由不同圖形對象(如坐標軸、曲線、曲面或文字等)組成的。MATLAB系統(tǒng)給每個圖形對象分配一個標識符,稱為句柄,以后可以通過該句柄獲取或設(shè)置該圖形對象的屬性。MATLAB的圖形系統(tǒng)是面向?qū)ο蟮?,圖形對象是MATLAB為了描述具有類似特征的圖形元素而定義的具有一
2、些公共屬性的抽象的元素集合,是用于顯示圖形和制作用戶界面的基本要素?!?.1.1圖形對象及其句柄6.1.1.1圖形對象MATLAB的圖形對象包括圖形窗口、坐標軸、用戶界面、曲線、曲面、文字、圖像等。在MATLAB中,每一個具體的圖形都是由若干個不同的圖形對象組成的。圖形對象是有層次的,其層次結(jié)構(gòu)如下頁圖所示。圖形窗口是根對象的子對象,坐標軸和用戶界面對象是圖形窗口的子對象,曲線、曲面、文字等是坐標軸的子對象?!?.1.1圖形對象及其句柄§6.1.1圖形對象及其句柄6.1.1.2圖形對象句柄MATLAB在創(chuàng)建每一個圖形對象時,都為該對象分配唯一的一個值,稱其為圖形對象句柄(H
3、andle),它是圖形對象的唯一標識符。根對象的句柄值為0;圖形窗口對象的句柄值為一正整數(shù),顯示在該窗口的標題欄;其他圖形對象的句柄為雙精度浮點數(shù)。MATLAB提供了若干個函數(shù)用于獲取已有圖形對象的句柄,較為常用的函數(shù)如下頁表所示。§6.1.1圖形對象及其句柄函數(shù)功能gcf獲取當前圖形窗口的句柄(getcurrentfigure)gca獲取當前坐標軸的句柄(getcurrentaxis)gco獲取最近被選中的圖形對象的句柄(getcurrentobject)findobj按照指定的屬性來獲取圖形對象的句柄§6.1.1圖形對象及其句柄【例6.1】繪制曲線并查看有關(guān)對象的句柄。
4、x=linspace(0,2*pi,30);y=sin(x);h0=plot(x,y,'rx')%曲線對象的句柄h0=171.0016h1=gcf%圖形窗口句柄h1=1h2=gca%坐標軸句柄h2=170.0017h3=findobj(gca,'Marker','x')%坐標軸上曲線的句柄h3=171.0016§6.1.1圖形對象及其句柄圖形對象的句柄由系統(tǒng)自動分配,每次分配的值不一定相同。在獲取對象的句柄后,可以通過句柄來設(shè)置或獲取對象的屬性?!?.1.1圖形對象及其句柄6.1.1.3圖形對象屬性1.屬性名與屬性值為方便屬性的操作,MATLAB給每種對象的每一個屬性規(guī)定了
5、一個名字,稱為屬性名,而屬性名的取值稱為屬性值。例如,LineStyle是曲線對象的一個屬性名,它的值決定著線型,取值可以是'-'、':'、'-.'、'--'或'none'。在屬性名的寫法中,不區(qū)分字母的大小寫,而且在不引起歧義的前提下,屬性名不必寫全。例如,lines就代表LineStyle。此外,屬性名要用單撇號括起來?!?.1.1圖形對象及其句柄2.屬性的操作(1)設(shè)置圖形對象屬性用戶可以通過set函數(shù)重新設(shè)置圖形對象屬性,其調(diào)用格式為set(句柄,屬性名1,屬性值1,屬性名2,屬性值2,…)其中“句柄”用于指明要操作的圖形對象。如果在調(diào)用set函數(shù)時省略全部屬性名和
6、屬性值,則將顯示出句柄所有的允許屬性。§6.1.1圖形對象及其句柄(2)獲取圖形對象屬性用戶可通過get函數(shù)獲取圖形對象的屬性值,其調(diào)用格式為V=get(句柄,屬性名)其中V是返回的屬性值。如果在調(diào)用get函數(shù)時省略屬性名,則將返回句柄所有的屬性值。例如,以下命令用來獲得上述曲線的顏色屬性值:col=get(h,'Color');§6.1.1圖形對象及其句柄3.對象的公共屬性圖形對象具有各種各樣的屬性,有些屬性是所有對象共同具備的,有些屬性則是各對象所特有的。這里先介紹對象常用的公共屬性。(1)Children屬性。該屬性的取值是該對象所有子對象的句柄組成的一個向量。(2)
7、Color屬性。該屬性的取值是一個顏色值,既可以用字符表示,也可以用RGB三元組表示。(3)Parent屬性。該屬性的取值是該對象的父對象的句柄。§6.1.1圖形對象及其句柄(4)Tag屬性。該屬性的取值是一個字符串,它相當于給該對象定義了一個標簽。定義了Tag屬性后,在任何程序中都可以通過findobj函數(shù)獲取該標簽所對應(yīng)圖形對象的句柄。例如,hf=?findobj(0,'Tag','Flag1')將在屏幕對象及其子對象中尋找Tag屬性為Flag1的對象,并返回句柄。(5)Type屬性。表示該對象的類型,該屬性的