![MatlabGUIDE使用說(shuō)明MatlabGUI界面_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/24/ad1ec989-5c91-4caa-b85b-62f39766dfd6/ad1ec989-5c91-4caa-b85b-62f39766dfd61.gif)
![MatlabGUIDE使用說(shuō)明MatlabGUI界面_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/24/ad1ec989-5c91-4caa-b85b-62f39766dfd6/ad1ec989-5c91-4caa-b85b-62f39766dfd62.gif)
![MatlabGUIDE使用說(shuō)明MatlabGUI界面_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/24/ad1ec989-5c91-4caa-b85b-62f39766dfd6/ad1ec989-5c91-4caa-b85b-62f39766dfd63.gif)
![MatlabGUIDE使用說(shuō)明MatlabGUI界面_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/24/ad1ec989-5c91-4caa-b85b-62f39766dfd6/ad1ec989-5c91-4caa-b85b-62f39766dfd64.gif)
![MatlabGUIDE使用說(shuō)明MatlabGUI界面_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/24/ad1ec989-5c91-4caa-b85b-62f39766dfd6/ad1ec989-5c91-4caa-b85b-62f39766dfd65.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、去年做了一些關(guān)于MatlabGUI的程序,現(xiàn)在又要做相關(guān)的東西,回想起來(lái),當(dāng)時(shí)很多經(jīng)驗(yàn)沒(méi)有記錄下來(lái),現(xiàn)在回顧起來(lái)始終覺(jué)得不爽,所以從現(xiàn)在開(kāi)始,一定要勤寫記錄。從簡(jiǎn)單的例子說(shuō)起吧。創(chuàng)建MatlabGUI界面通常有兩種方式:1 ,使用.m文件直接動(dòng)態(tài)添加控件2 .使用GUIDE快速的生成GUI界面顯然第二種可視化編輯方法算更適合寫大型程序。一:創(chuàng)建GUI1 .在.m文件中動(dòng)態(tài)添加例如h_main=figure('name','ademoofguidesign','menubar','none','numbertitle'
2、;,'off','position',100100300100);h_edit=uicontrol('style','edit','backgroundcolor',111,'position',20205020,.'tag','myedit','string','1','horizontalalignment','left');h_but1=uicontrol('style','
3、pushbutton','position',20505020,'string','INC',.'callback','v=eval(get(h_edit,"string'');',.'set(h_edit,''string'',int2str(v+1);');h_but2=uicontrol('style','pushbutton','position',80505020,'s
4、tring','DEC',.'callback','v=eval(get(h_edit,''string");','set(h_edit,"string",int2str(v-1);');2 .使用GUIDE幫助創(chuàng)建GUI在Command里面輸入GUIDE或者從菜單里面,或者從快捷按鈕均可進(jìn)入GUIDE新建并且保存后,會(huì)生成相應(yīng)的fig文件和m文件,在Layout編輯視圖,可以使用如下工具:LayoutEditor:布局編輯器;AlignmentTool:對(duì)齊工具;Proper
5、tyInspector:對(duì)象屬性觀察器;ObjectBrowser:對(duì)象瀏覽器;MenuEditor:菜單編輯器。二:使用控件新建一個(gè)布局(窗口),可以在新窗口中添加如下控件1.靜態(tài)文本(StaticText)3.列表框(Listbox)控件5,按鈕(PushButton)控件7.單選按鈕(RadioButton)控件9.檢查框(CheckBox)控件2.編輯框(EditText)控件4.滾動(dòng)條(Slider)控件6.開(kāi)關(guān)按鈕(ToggleButton)控件8,按鈕組(ButtonGroup)控件10.列表框(Listbox)控件11 .彈出式菜單(PopupMenu)控件12 .坐標(biāo)軸(Ax
6、es)控件13.面板(Panel)控件每一個(gè)控件都有自己的屬性常規(guī)屬性有:一、控件風(fēng)格和外觀(1) BackgroundColor:設(shè)置控件背景顏色,使用RGB或顏色定義。(2) CData:在控件上顯示的真彩色圖像,使用矩陣表示。(3) ForegroundColor:文本顏色。(4) String屬性:控件上的文本,以及列表框和彈出菜單的選項(xiàng)。(5) Visible:控件是否可見(jiàn)。二、對(duì)象的常規(guī)信息(1) Enable屬性:表示此控件的使能狀態(tài),設(shè)置為on”,表示可選,為“off時(shí)則表示不可選。(2) Style:控件對(duì)象類型。(3) Tag:控件表示(用戶定義)。(4) TooltipS
7、tring屬性:提示信息顯示。當(dāng)鼠標(biāo)指針位于此控件上時(shí),顯示提示信息。(5) UserData:用戶指定數(shù)據(jù)。(6) Position:控件對(duì)象的尺寸和位置。(7) Units:設(shè)置控件的位置及大小的單位(8) 有關(guān)字體的屬性,如FontAngle,FontName等。三、控件回調(diào)函數(shù)的執(zhí)行(1) BusyAction:處理回調(diào)函數(shù)的中斷。有兩種選項(xiàng):即Cancel:取消中斷事件,queue:排隊(duì)(默認(rèn)設(shè)置)。(2) ButtonDownFcn屬性:按鈕按下時(shí)的處理函數(shù)。(3) CallBack屬性:是連接程序界面整個(gè)程序系統(tǒng)的實(shí)質(zhì)性功能的紐帶。該屬性值應(yīng)該為一個(gè)可以直接求值的字符串,在該對(duì)象
8、被選中和改變時(shí),系統(tǒng)將自動(dòng)地對(duì)字符串進(jìn)行求值。(4) CreateFcn:在對(duì)象產(chǎn)生過(guò)程中執(zhí)行的回調(diào)函數(shù)。(5) DeleteFcn:刪除對(duì)象過(guò)程中執(zhí)行的回調(diào)函數(shù)。(6) Interruptible屬性:指定當(dāng)前的回調(diào)函數(shù)在執(zhí)行時(shí)是否允許中斷,去執(zhí)行其他的函數(shù)。四、控件當(dāng)前狀態(tài)信息(1) ListboxTop:在列表框中顯示的最頂層的字符串的索引。(2) Max:最大值。(3) Min:最小值。(4) Value:控件的當(dāng)前值。你可以使用屬性編輯器來(lái)設(shè)置屬性三:寫回調(diào)函數(shù)CallBack每個(gè)控件都有幾種回調(diào)函數(shù),右鍵選中的控件一般會(huì)有如下菜單:然后就可以跳轉(zhuǎn)到相應(yīng)的Editor中編輯代碼,GU
9、IDE會(huì)自動(dòng)生成相應(yīng)的函數(shù)體,函數(shù)名,名稱一般是控件Tag+Call類型名參數(shù)有三個(gè)(hObject,eventdata,handles)其中hObject為發(fā)生事件的源控件,eventdata為事件數(shù)據(jù)結(jié)構(gòu),handles為傳入的對(duì)象句柄CreateFcn是在控件對(duì)象創(chuàng)建的時(shí)候發(fā)生(一般為初始化樣式,顏色,初始值等)DeleteFcn實(shí)在空間對(duì)象被清除的時(shí)候發(fā)生ButtonDownFcn和KeyPressFcn分別為鼠標(biāo)點(diǎn)擊和按鍵事件CallbackCallBack為一般回調(diào)函數(shù),因不同的控件而已異。例如按鈕被按下時(shí)發(fā)生,下拉框改變值時(shí)發(fā)生,sliderbar拖動(dòng)時(shí)發(fā)生等等。四:句柄圖形之間
10、的層次關(guān)系可以創(chuàng)建圖形句柄的常見(jiàn)函數(shù)1 .figure函數(shù):創(chuàng)建一個(gè)新的圖形對(duì)象。2 .newplot函數(shù):做好開(kāi)始畫新圖形對(duì)象的準(zhǔn)備。3 .axes函數(shù):創(chuàng)建坐標(biāo)軸圖形對(duì)象。4 .line函數(shù):畫線。5 .patch函數(shù):填充多邊形。6 .surface函數(shù):繪制三維曲面。7 .image函數(shù):顯示圖片對(duì)象。8 .uicontrol函數(shù):生成用戶控制圖形對(duì)象。9 .uimenu函數(shù):生成圖形窗口的菜單中層次菜單與下一級(jí)子菜單。幾個(gè)實(shí)用的小函數(shù):uigetfile選擇文件對(duì)話框uiputfile保存文件對(duì)話框uisetcolor設(shè)置顏色對(duì)話框fontsetcolor設(shè)置字體對(duì)話框msgbox消
11、息框warndlg警告框helpdlg消息框不過(guò)如果要讓父窗口不可用,你需要使用uiwait來(lái)定焦于用戶對(duì)話框。例如:h=helpdlg('Pleasepressme!','Attention');uiwait(h);四:獲取與設(shè)置對(duì)象屬性常用函數(shù):gcf函數(shù):獲得當(dāng)前圖形窗口的句柄gca函數(shù):獲得當(dāng)前坐標(biāo)軸的句柄gco函數(shù):獲得當(dāng)前對(duì)象的句柄gcbo函數(shù):獲得當(dāng)前正在執(zhí)行調(diào)用的對(duì)象的句柄gcbf函數(shù):獲取包括正在執(zhí)行調(diào)用的對(duì)象的圖形句柄delete函數(shù):刪除句柄所對(duì)應(yīng)的圖形對(duì)象findobj函數(shù):查找具有某種屬性的圖形對(duì)象設(shè)置方法:(1)get函數(shù)返回某些對(duì)象
12、屬性的當(dāng)前值。例如:p=get(obj,'Position');(2)函數(shù)set改變句柄圖形對(duì)象屬性,例如:set(obj,'Position',vect);五:函數(shù)調(diào)用在一個(gè)m文件中,可以定義多個(gè)函數(shù),但是文件名一定要與第一個(gè)函數(shù)(主函數(shù))一致,該文件中其他函數(shù)則為本文件的私有函數(shù),外部不可訪問(wèn)(可以通過(guò)參數(shù)調(diào)用的方法訪問(wèn),下面會(huì)描述)例如在一個(gè)程序中,創(chuàng)建一個(gè)fig后,會(huì)生成這樣一個(gè)m文件:mfilename,.functionvarargout=febirdfun(varargin)gui_Singleton=1;gui_State=struct('
13、;gui_Name','gui_Singleton',gui_Singleton,.'gui_OutputFcn','gui_LayoutFcn',.'gui_Callback',);'gui_OpeningFcn',febirdfun_OpeningFcn,.febirdfun_OutputFcn,.ifnargin&&ischar(varargin1)gui_State.gui_Callback=str2func(varargin1);endifnargoutvarargout1:nar
14、gout=gui_mainfcn(gui_State,varargin:);elsegui_mainfcn(gui_State,varargin:);end解析一下這個(gè)主函數(shù):首先gui_State是一個(gè)結(jié)構(gòu),指定了figure打開(kāi)和輸出函數(shù),開(kāi)始gui_CallBack為空,如果輸入?yún)?shù)個(gè)數(shù)不為0,接下來(lái)將輸入第一個(gè)參數(shù)傳遞給gui_State.callback接下來(lái)用交給gui_mainfcn函數(shù)處理,gui_mainfcn根據(jù)gui_State和傳入?yún)?shù)來(lái)確定是執(zhí)子函數(shù),還是打開(kāi)fig文件和運(yùn)行OpeningFcn和OutputFcn。如過(guò)gui_Callback為空,那么就運(yùn)行打開(kāi)主窗
15、口fig文件,否則,調(diào)用子函數(shù)這個(gè)函數(shù)的作用有:1 .當(dāng)輸入不帶參數(shù)的時(shí)候,能夠打開(kāi)fig文件,并且初始化控件2 .當(dāng)指定需要調(diào)用的函數(shù)名時(shí),可以作為其他控件callback使用(實(shí)則調(diào)用同文件中的子函數(shù))例如,在某一個(gè)控件的callback里面這樣寫:(febrdfun為主函數(shù))febirdfun("push_button_Callback",gcbf,)這樣的調(diào)用就可以調(diào)用文件里面的子函數(shù)。當(dāng)然也可以使用其他文件里面的函數(shù)作為callback,不過(guò)那樣的話,數(shù)據(jù)傳遞會(huì)麻煩一些。下面看figureOpenningFunction%=functionMain_Opening
16、Fcn(hObject,eventdata,handles,varargin)handles.output=hObject;%通常在這里面定義自己的數(shù)據(jù)結(jié)構(gòu)例如s=struct("P1",v1."P2",v2);handles.MyStruct=s;%更新handles數(shù)據(jù)結(jié)構(gòu)非常重要!guidata(hObject,handles);%=functionvarargout=Main_OutputFcn(hObject,eventdata,handles)varargout1=handles.output;這個(gè)函數(shù)是輸出返回值的定義注意:matlab中,
17、function對(duì)應(yīng)的end可以沒(méi)有,但是隨著版本的更新,end將會(huì)被要求。六:數(shù)據(jù)傳遞在matlabGUI程序中進(jìn)行值傳遞我經(jīng)常使用的兩種方法:1 .利用主函數(shù)的handles數(shù)據(jù)結(jié)構(gòu)傳值例如在某一個(gè)圖像窗口句柄中有一個(gè)對(duì)象handles(可以定義自己的數(shù)據(jù)結(jié)構(gòu))那么在一個(gè)子Callback函數(shù)中,可以通過(guò)handles傳遞數(shù)據(jù):functionsliderbar1_Callback(hObject,eventdata,handles)%eg1v1=get(hObject,'value');obj=handles.Text1%直接定位Tag為Text1的控件set(obj,&
18、#39;value',v1);%eg2handles.MyStruct.P1=v1;%更改handles中的數(shù)據(jù)guidata(hObject,handles);%更新handles!重要end2 .利用控件的UserData來(lái)傳值每一個(gè)控件一般都有一個(gè)屬于自己的自定義域,userData,你可以定義這樣一個(gè)域用來(lái)保存自己的數(shù)據(jù),例如在定義timer的TimerFcn中t1=timer('TimerFcn',Timer1Fcn,'ErrorFcn',Timer1ErrorFcn,'Period',1.0,'ExecutionMode','fixedrate');t1.Userfata=handles.MyStruct;這里Timer
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年石膏砌塊專用粉項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年濁度剖面儀項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年機(jī)引式割摟草機(jī)項(xiàng)目投資價(jià)值分析報(bào)告
- 玩具制造居間承諾合同
- 2025年拍攝合同解除協(xié)議書
- 企業(yè)合同審核流程及風(fēng)險(xiǎn)防控
- 2025年環(huán)保節(jié)能方案合同
- 2025年意外風(fēng)險(xiǎn)保險(xiǎn)合同
- 2025年代理商分擔(dān)合同
- 2025年工會(huì)合同模板
- 支氣管鏡試題
- 贏在團(tuán)隊(duì)執(zhí)行力課件
- 北京理工大學(xué)應(yīng)用光學(xué)課件第四章
- 陰道鏡幻燈課件
- 現(xiàn)代漢語(yǔ)詞匯學(xué)精選課件
- PCB行業(yè)安全生產(chǎn)常見(jiàn)隱患及防范措施課件
- 上海音樂(lè)學(xué)院 樂(lè)理試題
- SAP中國(guó)客戶名單
- 2022年福建泉州中考英語(yǔ)真題【含答案】
- 淺談固定資產(chǎn)的審計(jì)
- WZCK-20系列微機(jī)直流監(jiān)控裝置使用說(shuō)明書(v1.02)
評(píng)論
0/150
提交評(píng)論