由MATLAB_GUIDE創(chuàng)建GUI_第1頁
由MATLAB_GUIDE創(chuàng)建GUI_第2頁
由MATLAB_GUIDE創(chuàng)建GUI_第3頁
由MATLAB_GUIDE創(chuàng)建GUI_第4頁
由MATLAB_GUIDE創(chuàng)建GUI_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、19修改自百度文庫_NUPT 王下邀月熊MATLAB GUI 編程-GUIDE2一、MATLAB GUIDE基本操作21.運(yùn)行GUIDE22.創(chuàng)建新的GUI23.打開已保存的文件34.GUI編輯界面組成45.屬性查看器56.GUI的M文件67.實(shí)例7二、MATLAB GUI基礎(chǔ)知識101.控件種類102.控件的四個(gè)重要屬性113.控件的其他常用屬性114.回調(diào)函數(shù)125.Callback程序12三、MATLAB GUI Callback程序基本操作121.圖形對象122.MATLAB圖形對象句柄133.圖形對象屬性134.Callback程序基本操作14四、MATLAB GUIDE 數(shù)據(jù)傳遞機(jī)

2、制141.GUIDE的函數(shù)142.GUIDE的參數(shù)153.兩個(gè)重要的結(jié)構(gòu)數(shù)組154. MATLAB GUIDE中數(shù)據(jù)155. MATLAB GUIDE數(shù)據(jù)訪問機(jī)制156.GUIDE 數(shù)據(jù)傳遞機(jī)制167.實(shí)例一:編輯框數(shù)據(jù)獲得在按鈕控件中調(diào)用168.實(shí)例二:彈出框選項(xiàng)獲得與程序控制17五、部分控件說明1819MATLAB GUI 編程-GUIDE 一、MATLAB GUIDE基本操作GUIDE是MATLAB圖形用戶接口開發(fā)環(huán)境(Graphical User Interface Development Environment)的簡稱,它提供了一系列工具用于建立GUI對象。這些工具極大簡化了設(shè)計(jì)和創(chuàng)

3、建GUI的過程。使用GUI可以完成兩項(xiàng)工作:(1)GUI圖形界面布局;(2)GUI編程。1.運(yùn)行GUIDE有三種方法可以啟動(dòng)GUIDE:(1)在命令行輸入: guide(2)單擊MATLAB主窗口的 (GUIDE)按鈕;(3)單擊MATLAB主窗口【Start】按鈕,出現(xiàn)彈出菜單,在主程序組【MATLAB】中選擇“GUIDE(GUI Builder)”選擇項(xiàng)。以上三種方法均:生成GUIDE快速啟動(dòng)對話框,如圖所示。2.創(chuàng)建新的GUI創(chuàng)建新的GUI時(shí),樣板可以選擇以下4種:(1)Blank GUI 一個(gè)空的樣板;(2)GUI with Uicontrols 打開包含一些uicontrol對象的G

4、UI編輯器;(3)GUI with Axes and Menu 打開包含菜單和一些坐標(biāo)軸圖形對象的GUI編輯器;(4)Modal Question Dialog 打開一個(gè)對話框編輯器,默認(rèn)為一個(gè)問題對話框。一般采用Blank GUI樣板。單擊OK按鈕后,進(jìn)入GUI編輯界面,如圖所示。3.打開已保存的文件在快速啟動(dòng)對話框中選擇打開已經(jīng)存在的GUI時(shí),可通過瀏覽的方式找到本地磁盤上的用戶GUI文件,或在已打開過的列表中直接選擇要打開的文件。如圖所示。4.GUI編輯界面組成GUI編輯界面主要包括3部分:GUI對象選擇區(qū)、GUI工具欄和GUI布局區(qū)。下面分別介紹這3個(gè)部分。(1)GUI對象選擇區(qū)打開【

5、File】|【Preferences.】|GUIDE,勾選show name in component palette,則在編輯界面顯示GUI對象名稱,如圖所示。(2)GUI工具欄GUI工具欄主要由對齊對象、菜單編輯器、Tab順序編輯器、M文件編輯器、屬性查看器、對象瀏覽器和運(yùn)行界面組成。(3)GUI布局區(qū)GUI布局區(qū)用于布局GUI對象。在布局區(qū)單擊鼠標(biāo)右鍵,彈出的菜單如圖所示。5.屬性查看器屬性查看器用來查看、設(shè)置或修改對象的屬性,是GUI編輯器的主要功能。調(diào)用對象屬性查看器有四種方法:(1)在對象上雙擊;(2)在對象上右擊,選擇Property Inspector;(3)選中對象后,單擊工

6、具欄上的 (Property Inspector)按鈕;(4)菜單欄選擇:【View】|Property Inspecto。如下圖所示為pushbutton1按鈕對象的屬性。6.GUI的M文件創(chuàng)建一個(gè)用戶界面應(yīng)用程序,缺省有兩個(gè)文件組織,*.fig和*.m。均由MATLAB的GUIDE工具自動(dòng)生成,其中自動(dòng)生成的M文件,控制并決定GUI對用戶操作的響應(yīng)。它包含運(yùn)行GUI所需要的所有代碼。GUIDE自動(dòng)生成M文件的框架,用戶在該框架下編寫GUI組件的回調(diào)函數(shù)。M文件由一系列子函數(shù)構(gòu)成,包含主函數(shù)、Opening函數(shù)、Output函數(shù)和回調(diào)函數(shù)。其中主函數(shù)不能修改,否則容易導(dǎo)致GUI界面初始化失敗

7、。7.實(shí)例例如,新建一個(gè)文件名為abc的GUI,并在界面上建一個(gè)按鈕,點(diǎn)擊該按鈕,則繪出以下圖形,界面和其對應(yīng)的M文件如下:function varargout = abc(varargin)% ABC M-file for abc.fig% ABC, by itself, creates a new ABC or raises the existing% singleton*.% H = ABC returns the handle to a new ABC or the handle to% the existing singleton*.% ABC(CALLBACK,hObject,ev

8、entData,handles,.) calls the local% function named CALLBACK in ABC.M with the given input arguments.% ABC(Property,Value,.) creates a new ABC or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before abc_OpeningFcn gets called. An% unrecognized p

9、roperty name or invalid value makes property application% stop. All inputs are passed to abc_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to

10、help abc% Last Modified by GUIDE v2.5 30-Mar-2010 13:22:20% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, abc_OpeningFcn, . gui_OutputFcn, abc_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargi

11、n & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before abc is made visible.function abc_OpeningFcn(hObject, event

12、data, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to abc (see VARARGIN)% Choose default co

13、mmand line output for abchandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes abc wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = abc_OutputFcn(hObject, eventdat

14、a, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = ha

15、ndles.output;% - Executes on button press in pushbutton2.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)figuret=0:0.1:2*p

16、i;plot(t,sin(t),-,t,cos(t)legend(正弦,余弦,Location,Best)二、MATLAB GUI基礎(chǔ)知識用戶界面(或接口)是指:人與機(jī)器(或程序)之間交互作用的工具和方法。如鍵盤、鼠標(biāo)都可成為與計(jì)算機(jī)交換信息的接口。 圖形用戶界面(Graphical User Interfaces ,GUI)則是由窗口、光標(biāo)、按鍵、菜單、文字說明等對象(Objects)構(gòu)成的一個(gè)用戶界面。用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對象,使計(jì)算機(jī)產(chǎn)生某種動(dòng)作或變化,比如實(shí)現(xiàn)計(jì)算、繪圖等。 假如讀者所從事的數(shù)據(jù)分析、解方程、計(jì)算結(jié)果可視工作比較單一,那么一般不會考慮GU

17、I的制作。但是如果讀者想向別人提供應(yīng)用程序,想進(jìn)行某種技術(shù)、方法的演示,想制作一個(gè)供反復(fù)使用且操作簡單的專用工具,那么圖形用戶界面也許是最好的選擇之一。也是體現(xiàn)用戶綜合運(yùn)用MATLAB的能力。1.控件種類GUI首先是一個(gè)窗口(對話框),窗口上除菜單外(菜單專門介紹),控件是一種實(shí)現(xiàn)用戶與計(jì)算機(jī)交互的主要途徑,利用這些控件可以實(shí)現(xiàn)有關(guān)控制。這些控件名稱如下:(1)按鈕(Push Button)(2)雙位按鈕(Toggle Button)(3)單選按鈕(Radio Button)(4)復(fù)選框(Check Box)(5)列表框(List Box)(6)彈出框(Popup Menu)(7)編輯框(Ed

18、it Box)(8)滑動(dòng)條(Slider)(9)靜態(tài)文本(Static Text)(10)邊框(Frame)2.控件的四個(gè)重要屬性控件有四個(gè)重要屬性,它們是:style 、callback、string 和position。(1)style 控件類型。在MATLAB中,控件使用統(tǒng)一函數(shù)創(chuàng)建,即uicontrol,控件類型用于區(qū)分不同類型的控件。在GUIDE中,該屬性自動(dòng)設(shè)置。(2)callback 回調(diào)函數(shù)。即單擊或雙擊一個(gè)控件要執(zhí)行的回調(diào)命令,其默認(rèn)為%automatic,不做修改,這個(gè)Callback就會自動(dòng)指向M文件編輯器里的函數(shù)體內(nèi)。(3)string 控件名稱。即字符串變量,用來說明

19、控件的功能或作用,提示用戶選擇相應(yīng)操作;在編輯框控件中,用來設(shè)置初值;(4)posion 位置。標(biāo)識控件在當(dāng)前窗口中所處的位置,以數(shù)組的形式表述,即a,b,c,d。其中a,b代表控件左下角起始位置,c,d代表控件大小。3.控件的其他常用屬性(1)unit 屏幕單位。共有六種,它們是英寸(inches)、厘米(centimeters)、歸一化(normalized)、點(diǎn)(points)、像素(pixels)和字符(characters),其中像素是缺省單位。使用較方便的是歸一化單位,即屏幕(或窗口)左下角為(0,0),右上角為(1,1)。(2)fontsize 字體大小??丶Q字符串字體大小設(shè)

20、置,同unit屬性一樣,一般定義整個(gè)窗口為統(tǒng)一的缺省設(shè)置值。(3)value 控件的值。在單選按鈕中,設(shè)置“1”表示選中,設(shè)置“0”表示非選中,且只能有1個(gè)處于選中狀態(tài);(4)max,min 最大值與最小值。在滑動(dòng)條控件中,用來設(shè)置滑動(dòng)值范圍;(5)sliderstep 步長。在滑動(dòng)條控件中,用來設(shè)置點(diǎn)擊滑動(dòng)條兩端的小尖頭或點(diǎn)擊滑動(dòng)區(qū)域滑動(dòng)條滑動(dòng)的距離。4.回調(diào)函數(shù)用戶對控件進(jìn)行操作(如鼠標(biāo)單擊、雙擊或移動(dòng),鍵盤輸入等)的時(shí)候,控件對該操作進(jìn)行響應(yīng),所指定執(zhí)行的函數(shù),就是該控件的回調(diào)函數(shù),也稱callback函數(shù)。該函數(shù)不會主動(dòng)執(zhí)行,只在用戶對控件執(zhí)行特定操作時(shí)執(zhí)行。采用函數(shù)編寫的GUI中,控

21、件回調(diào)屬性的值一般為字符串單元數(shù)組,每個(gè)單元均為一條MATLAB語句(指令),語句按單元順序排列。每條MATLAB語句用單引號引起來,語句本身含有的單引號改為兩個(gè)單引號。采用GUIDE創(chuàng)建的GUI中,控件回調(diào)函數(shù)指令可直接放在該對應(yīng)控件的函數(shù)中,指令寫法與命令行一致。5.Callback程序若要在M文件編輯器里編寫Callback程序,那么屬性檢查器里的Callback則不能作任何修改,默認(rèn)為%automatic,也就是當(dāng)用戶將GUI存儲并打開M文件編輯器后,這個(gè)Callback就會自動(dòng)指向M文件編輯器里的Callback函數(shù),如在上一篇博文提到的示例,“按鈕”的Callback函數(shù)中包含了四

22、行指令,點(diǎn)擊(激動(dòng))該按鈕,則會立即執(zhí)行該四行命令,繪出圖形。function pushbutton1_Callback(hObject, eventdata, handles)figuret=0:0.1:2*pi;plot(t,sin(t),-,t,cos(t)legend(正弦,余弦,Location,Best)三、MATLAB GUI Callback程序基本操作Callback是控件回調(diào)函數(shù)的一種屬性,用戶對控件進(jìn)行操作的時(shí)候,控件對該操作進(jìn)行響應(yīng),所指定執(zhí)行的函數(shù),就是該控件的回調(diào)函數(shù),也稱callback函數(shù)。一般情況下,該函數(shù)包含一組命令,即一段程序。而在該程序中,通常首先要獲取

23、界面上的各控件的值,如:編輯框中輸入的內(nèi)容或單選框是選擇哪個(gè)選項(xiàng)等,相當(dāng)于一般計(jì)算機(jī)語言程序開頭部分的賦值語句,而后面的計(jì)算分析等語句,包括分支、循環(huán)等控制,同一般程序編寫方法并無差別,所以,以下主要介紹GUI界面中數(shù)據(jù)的獲取方法。1.圖形對象MATLAB的圖形對象包括計(jì)算機(jī)屏幕、圖形窗口、坐標(biāo)軸、用戶菜單、用戶控件、曲線、曲面、文字、圖像、光源、區(qū)域塊和方框等。系統(tǒng)將每一個(gè)對象按樹型結(jié)構(gòu)組織起來。即:根:圖形對象的根,對應(yīng)于計(jì)算機(jī)屏幕,根只有一個(gè),其它所有圖形對象都是根的后代。圖形窗口: 根的子代,窗口的數(shù)目不限,所有圖形窗口都是根屏幕的子代,除根之外,其它對象則是窗的后代。界面控制:圖形窗

24、口的子代,創(chuàng)建用戶界面控制對象,使得用戶可采用鼠標(biāo)在圖形上作功能選擇,并返回句柄。界面菜單: 圖形窗口的子代,創(chuàng)建用戶界面菜單對象。 軸:圖形窗口的子代,創(chuàng)建軸對象,并返回句柄,線面字塊像的父輩。線:軸的子代,創(chuàng)建線對象。面:軸的子代,創(chuàng)建塊對象。字:軸的子代,創(chuàng)建字對象。塊:軸的子代,創(chuàng)建塊對象。像:軸的子代,創(chuàng)建圖像對象。2.MATLAB圖形對象句柄 句柄概念在WINDOWS編程中是一個(gè)很重要的概念,在許多地方都扮演著重要的角色。句柄的概念是:在Windows環(huán)境中,句柄是用來標(biāo)識項(xiàng)目的,這些項(xiàng)目包括:*.模塊(module)、*.任務(wù)(task)、*.實(shí)例(instance)、*.文件(

25、file)、*.內(nèi)存塊(block of memory)、*.菜單(menu)、*.控制(control)、*.字體(font)、*.資源(resource),包括圖標(biāo)(icon),光標(biāo)(cursor),字符串(string)等。MATLAB在創(chuàng)建每一個(gè)圖形對象時(shí),都為該對象分配唯一的一個(gè)值,稱其為圖形對象句柄(Handle)。句柄是圖形對象的唯一標(biāo)識符,不同對象的句柄不可能重復(fù)和混淆。MATLAB通過圖形對象句柄來設(shè)置或獲取其某一屬性的值。MATLAB回調(diào)函數(shù)中的hObject 是當(dāng)前事件源控件的句柄,而handles是整個(gè)GUI面板的總的句柄。3.圖形對象屬性MATLAB給每種對象的每一個(gè)

26、屬性規(guī)定了一個(gè)名字,稱為屬性名,而屬性名的取值稱為屬性值。如一個(gè)按鈕是一個(gè)控件,而Callback則是按鈕的屬性名,所執(zhí)行的回調(diào)函數(shù)則是屬性值。獲取某一控件的屬性值用get函數(shù)。get函數(shù)的調(diào)用格式為:V=get(句柄,屬性名)。其中句柄代表某一控件,V是返回的屬性值。 設(shè)置某一控件的屬性值用set函數(shù)。set函數(shù)的調(diào)用格式為:set(句柄,屬性名1,屬性值1,屬性名2,屬性值2,)。其中句柄用于指明要操作的圖形對象。4.Callback程序基本操作Callback程序首先要在圖形界面上獲得各各控件的值,然后進(jìn)行一系列計(jì)算過程,最后將計(jì)算結(jié)果用圖形的方式或字符串的方式顯示在圖形界面上。(1)通

27、過以下方式得到按鈕pushbutton1的句柄:h1=handles.pushbutton1 或 h1=findobj(tag,pushbutton1)(2)如果已知某一編輯框的句柄為hh(得到方法同上),從該編輯框獲取輸入內(nèi)容,用以下語句:str = get(hh,String);(3)如果編輯框輸入的是數(shù)值,要參與后面的程序計(jì)算,則需要對數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,即:instr = str2num(get(hh,String);(4)還有一種情況,如果獲取當(dāng)前控件的值,用以下方法即可:instr = str2double(get(hObject,String); %從編輯框獲取輸入值(5)或不用事

28、先得到控件的句柄,直接通過結(jié)構(gòu)數(shù)組獲得編輯框控件edit1的值:instr = str2double(get(handles.edit1,String); %從編輯框獲取輸入值(6)將計(jì)算結(jié)果顯示在編輯框edit2中,用以下方法:set(handles.edit2,String,str); %其中str是字符串變量。(7)如果計(jì)算結(jié)果是數(shù)值型,則要進(jìn)行轉(zhuǎn)換:str=num2str(n); %n為數(shù)值型變量(8)如果要將計(jì)算結(jié)果繪出圖形,并繪制在界面上預(yù)先定義的坐標(biāo)軸axes1中,則在繪圖命令前加上以下語句,使axes1成為當(dāng)前坐標(biāo)軸:axes(handles.axes1) % handles.

29、axes1即為坐標(biāo)軸axes1的句柄四、MATLAB GUIDE 數(shù)據(jù)傳遞機(jī)制在使用GUIDE編程中,主要工作是對Callback函數(shù)的程序編寫與調(diào)試,除了編程部分外,數(shù)據(jù)調(diào)用與傳遞是比較重要的,也是必須掌握的。Callback函數(shù)的調(diào)試主要在M文件中進(jìn)行。1.GUIDE的函數(shù)M文件由一系列子函數(shù)構(gòu)成,包含主函數(shù)、Opening函數(shù)、Output函數(shù)和回調(diào)函數(shù)。第一行為主函數(shù)聲明,必須指定主函數(shù)名,且與文件名相同;varargin為輸入?yún)?shù),varargout為輸出參數(shù)。Opening Opening函數(shù)是在GUI開始運(yùn)行但還不可見的時(shí)候執(zhí)行,主要進(jìn)行一些初始化操作,為GUI第一個(gè)執(zhí)行的函數(shù)。

30、Output Output函數(shù)是必要時(shí)可輸出數(shù)據(jù)到命令行,是第二個(gè)執(zhí)行的函數(shù),以上兩個(gè)函數(shù)只會執(zhí)行一次。Callbacks Callbacks函數(shù)是當(dāng)用戶每次觸發(fā)GUI對象時(shí),一般都會執(zhí)行一個(gè)相應(yīng)的回調(diào)函數(shù)。2.GUIDE的參數(shù)當(dāng)創(chuàng)建GUI時(shí),輸入?yún)?shù)varargin為空;當(dāng)用戶觸發(fā)GUI對象時(shí),varargin為一個(gè)14的單元數(shù)組:第一個(gè)單元為所要執(zhí)行回調(diào)函數(shù)的函數(shù)名。例如,用戶單擊了Tag值為pushbutton1的pushbutton對象,此時(shí)varargin1=pushbutton1_Callback,即為要執(zhí)行的回調(diào)函數(shù)pushbutton1_Callback的函數(shù)名。第24個(gè)單元為

31、該回調(diào)函數(shù)的輸入?yún)?shù):hObject、eventdata和handles。hObject為當(dāng)前回調(diào)函數(shù)對應(yīng)的GUI對象的句柄,eventdata為未定義的保留參數(shù),handles為當(dāng)前GUI所有數(shù)據(jù)的結(jié)構(gòu)體,包含所有GUI對象的句柄和用戶定義的數(shù)據(jù)。所以,用戶要定義一個(gè)變量pc,可使用如下方法:handles.pc=10 %變量pc可以在任何一個(gè)控件的Callback函數(shù)中調(diào)用。3.兩個(gè)重要的結(jié)構(gòu)數(shù)組GUIDE創(chuàng)建的GUI的M文件中,除主函數(shù)外的所有函數(shù)都有如下兩個(gè)輸入?yún)?shù):(1)hObject 在Opening函數(shù)和Output函數(shù)中,表示當(dāng)前figure對象的句柄;在Callback函數(shù)中

32、,表示該callback函數(shù)所屬對象的句柄;(2)handles GUI數(shù)據(jù)。包含所有對象信息和用戶數(shù)據(jù)的結(jié)構(gòu)體,相當(dāng)于一個(gè)GUI對象和用戶數(shù)據(jù)的“容器”。所以,在程序中經(jīng)常使用以下語句更新數(shù)據(jù):guidata(hObject, handles);4. MATLAB GUIDE中數(shù)據(jù)在MATLAB GUI中,數(shù)據(jù)分兩種:GUI data和Application data。兩種數(shù)據(jù)的存取機(jī)制是相同的,但是GUI data使用起來比較方便。每一個(gè)GUI 圖形界面都維持一個(gè)和自己的界面的圖形(figure)相聯(lián)系的一個(gè)handles數(shù)據(jù)結(jié)構(gòu),這個(gè)數(shù)據(jù)結(jié)構(gòu)中容納圖形界面內(nèi)所有控件(按鈕、列表框、編輯框

33、等)的句柄,相當(dāng)于一個(gè)大的“容器”,里面存放了figure內(nèi)所有控件的句柄。5. MATLAB GUIDE數(shù)據(jù)訪問機(jī)制handles結(jié)構(gòu)可以被figure內(nèi)所有控件的回調(diào)函數(shù)訪問,因?yàn)榛卣{(diào)函數(shù)的輸入?yún)?shù)中都有handles結(jié)構(gòu)。此外,在控件的回調(diào)函數(shù)內(nèi)可以把數(shù)據(jù)存儲到handles結(jié)構(gòu)中。例如,在編輯框edit1的回調(diào)函數(shù)內(nèi)想獲得該編輯框的句柄,hObject可以,也可以用handles.edit1,這兩個(gè)值是一樣的,沒有區(qū)別,只不過獲得控件句柄的方式不同而已:hObject是調(diào)用回調(diào)函數(shù)時(shí)直接傳過來的,handles.edit1是從handles結(jié)構(gòu)中取得的。各控件的回調(diào)函數(shù)中,hObjec

34、t的值是不一樣的,分別代表調(diào)用回調(diào)函數(shù)的控件的句柄,而handles結(jié)構(gòu)卻是一樣的。這種機(jī)制便于figure內(nèi)的不同控件的回調(diào)函數(shù)內(nèi)傳遞數(shù)據(jù)。6.GUIDE 數(shù)據(jù)傳遞機(jī)制如果把figure對象當(dāng)做一個(gè)大缸,而把其他對象例如axes、button等等當(dāng)做這個(gè)大缸里的小缸,那么handles就相當(dāng)于這個(gè)大缸的句柄,可以用大缸的句柄來設(shè)置小缸的屬性,例如handles.pushbutton1。hObject就相當(dāng)于每一個(gè)小缸的句柄了,例如,要改變當(dāng)前控件的某一屬性,可以直接在響應(yīng)控件的function里添加:set(hObject,property,value);也可以在另外的控件里改變其屬性:se

35、t(handles.pushbutton1,property,value);handles和hObject都是“句柄”,儲存了它所代表的“那個(gè)對象”的信息;只不過handles代表的是當(dāng)前整個(gè)界面,hObject代表的是當(dāng)前的這個(gè)控件(比如按鈕,編輯框)因?yàn)榛卣{(diào)函數(shù)的輸入?yún)?shù)中都有handles結(jié)構(gòu),如:function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)所以,這種數(shù)據(jù)傳遞機(jī)制是很方便和容易掌握的。7.實(shí)例一:編輯框數(shù)據(jù)獲得在按鈕控件中調(diào)用以下是三個(gè)Callback函數(shù):(1)密度function density_Callback(hObject, eventdata, handles)density = str2double(get(hObject, String); %獲得數(shù)據(jù)handles

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論