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

下載本文檔

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

文檔簡介

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

>>Hf_fig=figure

Hf_fig=gcf返回當前圖形窗口的句柄值Ha_ax=gca返回當前圖形窗口內(nèi)當前坐標軸的句柄值。句柄對象的變量取名以大寫的H開頭,跟之以一個辨識對象類型的字母,然后是一個下劃線,最后是一個或幾個描述符。Hf_fig,Ha_ax1,Ht_title8.1.3 通用函數(shù)get和set所有對象都有屬性來定義它們的特征,正是通過設(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對象層次結(jié)構(gòu)8.2.3 菜單8.2.4 控件8.2.5 獨立的回調(diào)函數(shù)8.2.1 GUI對象層次結(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'屬性值是菜單條和下拉菜單項上的文本字符串,以確認菜單項。‘Callback'屬性值是MATLAB字符串,當選中菜單項時,用以執(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

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

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

限幅模式對uicontrol對象無作用效果對uicontrol對象無作用效果DestroyFcn只對Macintosh4.2版本。沒有文件說明Interrruptible{on}:off:指定ButtonDownFcn和CallBack串是否可中斷回調(diào)不能由其它回調(diào)中斷回調(diào)串可被中斷Parent包含uicontrol對象的圖形句柄*Select值為[on|off]*Tag文本串Type只讀對象辯識串,通常為uicontrolUserData用戶指定的數(shù)據(jù)。可以是矩陣,字符串等等Visible{on}:off:uicontrol對象的可視性uicontrol對象在屏幕上可見uicontrol對象不可見,但仍然存在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);滑標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 獨立的回調(diào)函數(shù)建立GUI函數(shù)的一個有效方法是編寫?yīng)毩⒌幕卣{(diào)函數(shù)。函數(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論