matlab第八章圖形用戶界面_第1頁
matlab第八章圖形用戶界面_第2頁
matlab第八章圖形用戶界面_第3頁
matlab第八章圖形用戶界面_第4頁
matlab第八章圖形用戶界面_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第8章句柄圖形及圖形用戶界面的制作8.1 句柄圖形8.2 圖形用戶界面8.1 句柄圖形8.1.1 對(duì)象8.1.2 句柄對(duì)象8.1.3 通用函數(shù)get和set8.1.1對(duì)象句柄圖形的思想是:Matlab的每一個(gè)可視部分就是一個(gè)對(duì)象,每一個(gè)對(duì)象都有一個(gè)相應(yīng)的唯一標(biāo)識(shí)符或者句柄,并且每個(gè)對(duì)象都有可以根據(jù)需要進(jìn)行修改的屬性。由圖形命令產(chǎn)生的每一件東西都是圖形對(duì)象。它們包括圖形窗口或僅僅說是圖形,還有坐標(biāo)軸、線條、曲面、文本和其它。這些對(duì)象按父對(duì)象和子對(duì)象組成層次結(jié)構(gòu)。8.1.2句柄對(duì)象在MATLAB中,每一個(gè)對(duì)象都有一個(gè)數(shù)字來標(biāo)識(shí),叫做句柄

>>Hf_fig=figure

Hf_fig=gcf返回當(dāng)前圖形窗口的句柄值Ha_ax=gca返回當(dāng)前圖形窗口內(nèi)當(dāng)前坐標(biāo)軸的句柄值。句柄對(duì)象的變量取名以大寫的H開頭,跟之以一個(gè)辨識(shí)對(duì)象類型的字母,然后是一個(gè)下劃線,最后是一個(gè)或幾個(gè)描述符。Hf_fig,Ha_ax1,Ht_title8.1.3 通用函數(shù)get和set所有對(duì)象都有屬性來定義它們的特征,正是通過設(shè)定這些屬性來修正圖形顯示的方式。{屬性名,屬性值},{’linestyle’,’-’}get(handle,'PropertyName’)set(handle,'PropertyName',value)

>>Hf_1=figure(‘color’,'white')>>p=get(Hf_1,'position')>>c=get(Hf_1,'color')>>set(Hf_1,'Position',p_vect)>>set(Hf_1,'color','r')>>set(Hf_1,'Color','r','Linewidth',2,'LinStyle','--')

set(Hf_1)get(Hf_1)8.2 圖形用戶界面8.2.1 GUI對(duì)象層次結(jié)構(gòu)8.2.3 菜單8.2.4 控件8.2.5 獨(dú)立的回調(diào)函數(shù)8.2.1 GUI對(duì)象層次結(jié)構(gòu)8.2.2 菜單8.2.2.1 菜單的布置>>figure;>>set(gcf,'menubar','none')>>set(gcf,'menubar','figure')

8.2.2.2 建立菜單和子菜單>>Hm_1=uimenu(Hx_parent,’PropertyName‘,PropertyValue,...)‘Label'屬性值是菜單條和下拉菜單項(xiàng)上的文本字符串,以確認(rèn)菜單項(xiàng)?!瓹allback'屬性值是MATLAB字符串,當(dāng)選中菜單項(xiàng)時(shí),用以執(zhí)行。Hm_ex=uimenu(gcf,'Label’,'Example');Hm_exgrid=uimenu(Hm_ex,'Label','Grid','Callback','Grid');Hm_exview=uimenu(Hm_ex,'Label','View');Hm_ex2d=uimenu(Hm_exview,'Label‘,'2-D','Callback','view(2)');Hm_ex3d=uimenu(Hm_exview,'Label‘,'3-D','Callback',‘view(3)');8.2.2.3 菜單屬性Uimenu

對(duì)象的屬性Accelerator指定菜單項(xiàng)等價(jià)的按鍵或快捷鍵。BackgroundColoruimenu背景色,是一個(gè)3元素的RGB向量或預(yù)先定義的顏色名稱。缺省的是亮灰色CallbackMATLAB回調(diào)字符串,選擇菜單項(xiàng)時(shí),回調(diào)串傳給函數(shù)eval;初始值為空矩陣Checkedon:{off}:被選項(xiàng)的校驗(yàn)標(biāo)記校驗(yàn)標(biāo)記出現(xiàn)在所選項(xiàng)的旁邊校驗(yàn)標(biāo)記不顯示Enable{on}:off:菜單項(xiàng)使能。選擇菜單項(xiàng)能將Callback字符串傳給eval菜單項(xiàng)不使能,菜單標(biāo)志變灰。選擇菜單項(xiàng)不起任何作用。ForegroundColoruimenu前景色,是一個(gè)三元素的RGB向量或預(yù)先定義的顏色名稱。缺省的是黑色Label含有菜單項(xiàng)標(biāo)志的文本串。在PC系統(tǒng)中,標(biāo)記中前面有'&',定義了快捷鍵,它由Alt-字符激活Positionuimenu對(duì)象的相對(duì)位置。頂層菜單從左到右編號(hào),子菜單從上至下編號(hào)Separatoron:{off}:分割符-線模式分割線在菜單項(xiàng)之上不畫分割線*Visible{on}:off:uimenu對(duì)象的可視性u(píng)imenu對(duì)象在屏幕上可見uimenu對(duì)象不可見ButtonDownFcn當(dāng)對(duì)象被選擇時(shí),MATLAB的回調(diào)串傳給函數(shù)eval。初始值為空矩陣。Children其它uimenu對(duì)象的句柄。Clipping{on}:off:限幅模式對(duì)uimenu對(duì)象無效果對(duì)uimenu對(duì)象無效果Interrruptible{no}:yes:指明ButtonDownFcn和CallBack串可否中斷Parent父對(duì)象的句柄;如果uimenu對(duì)象是頂層菜單,則為圖形對(duì)象;若uimenu是子菜單,則為父的uimenu對(duì)象句柄*Select值為[on|off]*Tag文本串Type只讀對(duì)象辯識(shí)串,通常為uimenuUserData用戶指定的數(shù)據(jù)??梢允蔷仃?字符串等Visible{on}:off:uimenu對(duì)象的可視性u(píng)imenu對(duì)象在屏幕上可見uimenu對(duì)象不可見8.2.3 控件MATLAB控件,又稱uicontrol,如按鈕、滑標(biāo)、文本框及彈出式菜單Hc_1=uicontrol(Hf_fig,'PropertyName’,PropertyValue,...)

8.2.3.1 控件屬性BackgroundColoruicontrol背景色。3元素的RGB向量或預(yù)先定義的顏色名稱。缺省的背景色是淺灰色。CallbackMATLAB回調(diào)串,當(dāng)uicontrol激活時(shí),回調(diào)串傳給函數(shù)eval;初始值為空矩陣。ForegroundColoruicontrol前景(文本)色。3元素的RGB向量或預(yù)先定義的顏色名稱。缺省的是黑色。HorizontalAlignmentleft:{center}:right:標(biāo)志串的水平排列相對(duì)于uicontrol文本左對(duì)齊相對(duì)于uicontrol文本居中相對(duì)于uicontrol文本右對(duì)齊Max屬性'Value'的最大許可值。最大值取決于uicontrol的'Type'當(dāng)uicontrol處于on狀態(tài)時(shí),無線按鈕及檢查框?qū)alue設(shè)定為Max;缺省值為1Min屬性'Value'的最小許可值。最小值取決于uicontrol的'Type'uicontrol處于off狀態(tài)時(shí)。無線按鈕及檢查框?qū)alue設(shè)定為Min;缺省值為0Position位置向量[leftbottomwidthheight]。其中,[leftheight]表示相對(duì)于圖形對(duì)象左下角的uicontrol的左下角位置。[widhtheight]表示uicontrol的尺寸大小,其單位由屬性Units確定Enable*{on}:off:控件使能狀態(tài)uicontrol使能。激活uicontrol,將Callback字符串傳給evalunicntrol不使能,標(biāo)志串模糊不清。激活unicontrol不起作用String文本字符串,在按鈕鍵,無線按鈕,檢查框和彈出式菜單上指定uicontrol的標(biāo)志。對(duì)于可編輯文本框,該屬性設(shè)置成由用戶輸入的字符串。對(duì)彈出式菜單多個(gè)選項(xiàng)或,每一項(xiàng)用垂直條(|)分隔,整個(gè)字符串用引號(hào)括起來。框架和滑標(biāo),不用引號(hào)Style{pushbutton}radiobuttoncheckboxedittextsliderframepopupmenu定義uicontrol對(duì)象的類型按鈕鍵:選擇時(shí)執(zhí)行一個(gè)動(dòng)作。無線按鈕鍵:單獨(dú)使用時(shí),在兩個(gè)狀態(tài)之間切換;成組使用時(shí),讓用戶選擇一個(gè)選項(xiàng)檢查框:單獨(dú)使用時(shí),在兩個(gè)狀態(tài)之間切換;成組使用時(shí),讓用戶選擇一個(gè)選項(xiàng)可編輯框:顯示一個(gè)字符串并可讓用戶改變靜態(tài)文本框:顯示一個(gè)字符串滑標(biāo):讓用戶在值域范圍內(nèi)選擇一個(gè)值??蚣埽猴@示包圍一個(gè)或幾個(gè)uicontrol的框架彈出式菜單:含有許多互斥的選擇的彈出式菜單Unitsinchescentimetersnormalizedpoints{pixels}位置屬性值的單位英寸厘米歸一化的坐標(biāo)值,圖形的左下角映射為[00]而右上角的映射為為[11]打印設(shè)置點(diǎn),等于1/72英寸屏幕的象素。計(jì)算機(jī)屏幕分辨率的最小單位。Valueuicontrol的當(dāng)前值。無線按鈕和檢查框在'on'狀態(tài)時(shí),value設(shè)為Max,當(dāng)是'off'狀態(tài)時(shí),value設(shè)為Min。由滑標(biāo)將滑標(biāo)的value設(shè)置為數(shù)值(Min≤Value≤Max),彈出式菜單把value值設(shè)置所選擇選項(xiàng)的下標(biāo)(1≤Value≤Max)。文本對(duì)象和按鈕不設(shè)置該屬性。ButtonDownFcn當(dāng)uicontrol被選擇時(shí),MATLAB回調(diào)串傳給函數(shù)eval。初始值為空矩陣ChildrenUicontrol對(duì)象一般無子對(duì)象,通常返回空矩陣Clipping{on}:off:

限幅模式對(duì)uicontrol對(duì)象無作用效果對(duì)uicontrol對(duì)象無作用效果DestroyFcn只對(duì)Macintosh4.2版本。沒有文件說明Interrruptible{on}:off:指定ButtonDownFcn和CallBack串是否可中斷回調(diào)不能由其它回調(diào)中斷回調(diào)串可被中斷Parent包含uicontrol對(duì)象的圖形句柄*Select值為[on|off]*Tag文本串Type只讀對(duì)象辯識(shí)串,通常為uicontrolUserData用戶指定的數(shù)據(jù)。可以是矩陣,字符串等等Visible{on}:off:uicontrol對(duì)象的可視性u(píng)icontrol對(duì)象在屏幕上可見uicontrol對(duì)象不可見,但仍然存在8.2.3.2 控件類型按鈕鍵Hc_close=uicontrol(gcf,'Style','push',...'Position',[101010025],...'String',’Close',...'CallBack',’close’);

無線按鈕>>Hc_boxon=uicontrol(gcf,'Style','radio',...'Position',[204510020],...'String','Setboxon‘,…

'Value',0,...'CallBack',[...'set(Hc_boxon,''Value'',1),'...'set(Hc_boxoff,''Value'',0),'...'set(gca,''Box'',''on'')']);>>Hc_boxoff=uicontrol(gcf,'Style','radio',...'Position',[202010020],...'String','Setboxoff’,…'Value',1… 'CallBack',[... 'set(Hc_boxoff,''Value'',1),'... 'set(gca,''Box'',''off'')']);檢查框>>Hc_box=uicontrol(gcf,'Style','check',...'Position',[1005010020],...'String','AxisBox',...'CallBack',[...'ifget(Hc_box,''Value'')==1,'...'set(gca,''Box'',''on''),'...'else,'...‘set(gca,''Box'',''off'‘),'...'end']);

靜態(tài)文本框>>Hc_ver=uicontrol(gcf,'Style','text',...'Position',[101015040],...'String',['MATLABVersion',version]);可編輯文本框Hc_label=uicontrol(gcf,'Style','edit',...'Position',[10107020],...'String','Colormap:');Hc_map=uicontrol(gcf,'Style','edit',...'Position',[80106020],...'String','hsv',...'callback','coloormap(eval(get(Hc_map,''String'')))');Hc_multi=uicontrol(gcf,'Style','edit',... 'Position',[20507575],... 'String','ThisisaMutliLineEditText',... 'Max',3);滑標(biāo)figure,vw=get(gca,'View');Hc_az=uicontrol(gcf,'Style','slider',...'Position',[10514020],...'Min',-90,'Max',90,'Value',vw(1),...'CallBack',[...'set(Hc_cur,''String'',num2str(get(Hc_az,''Value''))),'...'set(gca,''View'',[get(Hc_az,''Value'')vw(2)])']);Hc_min=uicontrol(gcf,'Style','text',...'Position',[10254020],...'String',num2str(get(Hc_az,'Min')));Hc_max=uicontrol(gcf,'Style','text',...'Position',[110254020],...'String',num2str(get(Hc_az,'Max')));Hc_cur=uicontrol(gcf,'Style','text',...'Position',[60254020],...'String',num2str(get(Hc_az,'Value')));彈出式菜單Hc_fcolor=uicontrol(gcf,'style','popupmenu',...'Position',[20208020],...'String','Black|Red|Yellow|Green|Cyan|Blue|Magenta|White',...'Value',1,...'UserData',[000;100;110;010;011;001;101;111],...'CallBack',[...'UD=get(Hc_fcolor,''UserData'');',...'set(gcf,''Color'',UD(get(Hc_fcolor,''Value''),:))']);框架Hc_frame=uicontrol(gcf,'Style','frame','Position',[2502009565]);Hc_pb1=uicontrol(gcf,'Style','pushbutton',...'Position',[2552054040],'String','OK');Hc_pb2=uicontrol(gcf,'Style','pushbutton',...'Position',[3002054040],'String','NOT');Hc_1b1=uicontrol(gcf,'Style','text',...'Position',[2552508510],'Str','PushMe');

8.2.5 獨(dú)立的回調(diào)函數(shù)建立GUI函數(shù)的一個(gè)有效方法是編寫?yīng)毩⒌幕卣{(diào)函數(shù)。函數(shù)使用的對(duì)象句柄和其它變量可以作為參量傳遞,必要時(shí)回調(diào)函數(shù)可返回值。figurevw=get(gca,'View');Hc_az=uicontrol(gcf,'Style','slider',...'Position',[10514020],...'Min',-90,'Max',90,'Value',vw(1),...'Callback',[...'set(Hc_cur,''String'',num2str(get(Hc_az,''Value''))),'...'set(gca,''View'',[get(Hc_az,''Value'')vw(2)])']);Hc_min=uicontrol(gcf,'style','text',...'Position',[10254020],...'String',num2str(get(Hc_az,'Min')));Hc_max=uicontrol(gcf,'Style','text',...'Position',[110254020],...'String',num2str(get(Hc_az,'Max')));Hc_cur=uicontrol(gcf,'Style','text',...'Position',[60254020],...'String',num2str(get(Hc_az,'Value')));funtion

setview()vw=get(gca,‘View’);Hc_az=uicontrol(gcf,'Style','Slider',...'Position',[10514020],...'Min',-90,'Max,90

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論