GUIDE(Graphical User Interfaces Development Environment)是由窗口,光標(biāo)、按鍵,菜單,文字說明等對象(Objects)構(gòu)成的一個用戶界面。
內(nèi)容介紹
在MATLAB的命令行窗口中鍵入guide可以打開GUIDE。這個命令將打開GUIDE Quick Start對話框。它可以看作是一個簡單的GUI應(yīng)用程序的開發(fā)向?qū)А@盟梢允褂檬髽?biāo)方便地在窗體上添加各種各樣的控件。而且它會負(fù)責(zé)生成一個m文件,里邊定義了各個控件的回調(diào)函數(shù),簡化了GUI應(yīng)用程序的開發(fā)。當(dāng)然MATLAB中GUI應(yīng)用程序也可以使用純代碼生成。在MATLAB中,關(guān)于guide的使用方法,參見幫助文檔:MATLAB/Getting Started/Create Graphical User Interfaces/Laying Out a GUI/Starting GUIDE條目下。
用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對象,使計算機產(chǎn)生某種動作或變化,比如實現(xiàn)計算、繪圖等。
程序設(shè)計
一. 控件對象及屬性(Object and its attributes of controller))
1. GUI控件對象類型(The mode of controller object)
控件對象是事件響應(yīng)的圖形界面對象。當(dāng)某一事件發(fā)生時,應(yīng)用程序會做出響應(yīng)并執(zhí)行某些預(yù)定的功能子程序(Callback).
2. 控件對象的描述(Description of controller object)
MATLAB中的控件大致可分為兩種,一種為動作控件,鼠標(biāo)點擊這些控件時會產(chǎn)生相應(yīng)的響應(yīng)。一種為靜態(tài)控件,是一種不產(chǎn)生響應(yīng)的控件,如文本框等。
每種控件都有一些可以設(shè)置的參數(shù),用于表現(xiàn)控件的外形、功能及效果,既屬性。屬性由兩部分組成:屬性名和屬性值,它們必須是成對出現(xiàn)的。
(1)按鈕(Push Buttons):執(zhí)行某種預(yù)定的功能或操作;
(2)開關(guān)按鈕(Toggle Button):產(chǎn)生一個動作并指示一個二進(jìn)制狀態(tài)(開或關(guān)),當(dāng)鼠點擊它時按鈕將下陷,并執(zhí)行callback(回調(diào)函數(shù))中指定的內(nèi)容,再次點擊,按鈕復(fù)原,并再次執(zhí)行callback中的內(nèi)容;
(3)單選框(Radio Button):單個的單選框用來在兩種狀態(tài)之間切換,多個單選框組成一個單選框組時,用戶只能在一組狀態(tài)中選擇單一的狀態(tài),或稱為單選項;
(4)復(fù)選框(Check Boxes):單個的復(fù)選框用來在兩種狀態(tài)之間切換,多個復(fù)選框組成一個復(fù)選框組時,可使用戶在一組狀態(tài)中作組合式的選擇,或稱為多選項;
(5)文本編輯器(Editable Texts):用來使用鍵盤輸入字符串的值,可以對編輯框中的內(nèi)容進(jìn)行編輯、刪除和替換等操作;
(6)靜態(tài)文本框(Static Texts):僅僅用于顯示單行的說明文字;
(7)滾動條(Slider):可輸入指定范圍的數(shù)量值;
(8)邊框(Frames):在圖形窗口圈出一塊區(qū)域;
(9)列表框(List Boxes):在其中定義一系列可供選擇的字符串;
(10)彈出式菜單(Popup Menus):讓用戶從一列菜單項中選擇一項作為參數(shù)輸入;
(11)坐標(biāo)軸(Axes):用于顯示圖形和圖象
3. 控件對象的屬性(Attributes of controller object)
用戶可以在創(chuàng)建控件對象時,設(shè)定其屬性值,未指定時將使用系統(tǒng)缺省值。
兩大類控件對象屬性:第一類是所有控件對象都具有的公共屬性,第二類是控件對象作為圖形對象所具有的屬性。
A,控件對象的公共屬性
Children取值為空矩陣,因為控件對象沒有自己的子對象
Parent取值為某個圖形窗口對象的句柄,該句柄表明了控件對象所在的圖形窗口
Tag取值為字符串,定義了控件的標(biāo)識值,在任何程序中都可以通過這個標(biāo)識值控制該控件對象
Type取值為uicontrol,表明圖形對象的類型
UserDate取值為空矩陣,用于保存與該控件對象相關(guān)的重要數(shù)據(jù)和信息
visible取值為no 或off,
B,控件對象的基本控制屬性
BackgroundColor取值為顏色的預(yù)定義字符或RGB數(shù)值
Callback取值為字符串,可以是某個M文件名或一小段MATLAB語句,當(dāng)用戶激活某個控件對象時,應(yīng)用程序就運行該屬性定義的子程序。
Enable取值為on(缺省值),inactive和off
Extend取值為四元素矢量[0 ,0 width, height],記錄控件對象標(biāo)題字符的位置和尺寸
ForegroundColor取值為顏色的預(yù)定義字符或RGB數(shù)值
Max,Min取值都為數(shù)值
String取值為字符串矩陣或數(shù)組,定義控件對象標(biāo)題或選項內(nèi)容
Style取值可以是pushbutton, radiobutton, checkbox, edit, text, slider, frame, popupmenu 或listbox
Units取值可以是pixels, normalized, inches, centimeters或points
Value取值可以是矢量,也可以是數(shù)值,其含義及解釋依賴于控件對象的類型
C,控件對象的修飾控制屬性
FontAngle取值為normal,italic, oblique,
FontName取值為控件標(biāo)題等字體的字庫名
FontSize取值為數(shù)值,
FontWeight取值為points,normalized, inches, centimeters或pixels
HorizontalAligment取值為left,right,定義對齊方式
D,控件對象的輔助屬性
ListboxTop取值為數(shù)量值
SliderStop取值為兩元素矢量[minstep,maxstep],用于slider控件
Selected取值為on 或off
SlectionHoghlight取值為on 或off
E,Callback管理屬性
BusyAction取值為cancel或queue
ButtDownFun取值為字符串,一般為某個M文件名或一小段MATLAB程序
Creatfun取值為字符串,一般為某個M文件名或一小段MATLAB程序
DeletFun取值為字符串,一般為某個M文件名或一小段MATLAB程序
HandleVisibility取值為on,callback或off
Interruptible取值為on 或off
二.GUI開發(fā)環(huán)境(GUI DevelopmentEnvironment, GUIDE)MATLAB提供了一套可視化的創(chuàng)建圖形窗口的工具,使用用戶界面開發(fā)環(huán)境可方便的創(chuàng)建GUI應(yīng)用程序,它可以根據(jù)用戶設(shè)計的GUI布局,自動生成M文件的框架,用戶使用這一框架編制自己的應(yīng)用程序。MATLAB提供了一套可視化的創(chuàng)建圖形用戶接口(GUI)的工具,包括:*布局編輯器(Layout Edtor)-------在圖形窗口中加入及安排對象。布局編輯器是可以啟動用戶界面的控制面板,上述工具都必須從布局編輯器中訪問,用guide命令可以啟動,或在啟動平臺窗口中選擇GUIDE來啟動布局編輯器。*幾何排列工具(Alignment Tool)-----調(diào)整各對象相互之間的幾何關(guān)系和位置*屬性編輯器(Property Inspector)-----查詢并設(shè)置屬性值*對象瀏覽器Object Browser)-----用于獲得當(dāng)前MATLAB圖形用戶界面程序中所有的全部對象信息,對象的類型,同時顯示控件的名稱和標(biāo)識,在控件上雙擊鼠標(biāo)可以打開該控件的屬性編輯器。*菜單編輯器(Menu Editor)-----建立窗口菜單條的菜單和任何構(gòu)成布局的彈出菜單在MATLAB中, GUI的設(shè)計是以 M文件的編程形式實現(xiàn)的,GUI的布局代碼存儲在M文件和MAT文件中,而在MATLAB6中有了很大的改變,MATLAB6將GUI的布局代碼存儲在 FIG文件中,同時還產(chǎn)生一個M文件用于存儲調(diào)用函數(shù),在M文件中不再包含GUI的布局代碼,在開發(fā)應(yīng)用程序時代碼量大大減少。1. 布局編輯器(Layout editor):用于從控件選擇板上選擇控件對象并放置到布局區(qū)去,布局區(qū)被激活后就成為圖形窗口。在命令窗口輸入GUIDE命令或點擊工具欄中的guide圖標(biāo)都可以打開空白的布局編輯器,在命令窗口輸入GUIDEfilename 可打開一個已存在的名為filename圖形用戶界面。(1)將控件對象放置到布局區(qū)a. 用鼠標(biāo)選擇并放置控件到布局區(qū)內(nèi);b. 移動控件到適當(dāng)?shù)奈恢茫籧. 改變控件的大小;d. 選中多個對象的方法;(2)激活圖形窗口 選Tools菜單中的Activate Figure項或點擊工具條上的ActivareFigure按鈕,在激活圖形窗口的同時將存儲M 文件和FIG文件,如所建立的布局還沒有進(jìn)行存儲,用戶界面開發(fā)環(huán)境將打開一個Save As對話框,按輸入的文件的名字,存儲一對同名的M文件和帶有.fig擴展名的FIG文件。(3)運行GUI程序 在命令窗口直接鍵入文件名或用openfig, open或hgload命令運行GUI程序。(4)布局編輯器參數(shù)設(shè)置 選File菜單下的Preferences菜單項打開參數(shù)設(shè)置窗口,點擊樹狀目錄中的GUIDE,既可以設(shè)置布局編輯器的參數(shù)。(5)布局編輯器的彈出菜單 在任一控件上按下鼠標(biāo)右鍵,會彈出一個菜單,通過該菜單可以完成布局編輯器的大部分操作。2. 幾何位置排列工具(Alignment tool) 用于調(diào)節(jié)各控件對象之間的相對位置。3. 用屬性編輯器設(shè)置控件屬性(Set attributes of controller with PropertyInspector) 在屬性編輯器中提供了所有可設(shè)置的屬性列表并顯示出當(dāng)前的屬性。(1)屬性編輯器(Opening PropertyInspector):三種方法:1. 用工具欄上的圖標(biāo)打開;2. 從View菜單中選擇Property Inspector菜單項;3. 在按鼠標(biāo)右鍵彈出的Property Inspector菜單中選擇菜單項。(1)使用屬性編輯器(Using Property Inspector)a. 布置控件b. 定義文本框的屬性c. 定義坐標(biāo)系d. 定義按鈕屬性e. 定義復(fù)選框4. 菜單編輯器(Menu Editor):包括菜單的設(shè)計和編輯,菜單編輯器有八個快捷鍵,可以利用它們?nèi)我馓砑踊騽h除菜單,可以設(shè)置菜單項的屬性,包括名稱(Label)、標(biāo)識(Tag)、選擇是否顯示分隔線(Separator above this item)、是否在菜單前加上選中標(biāo)記(Item ischecked)、調(diào)用函數(shù)(Callback)。5. 對象瀏覽器(Object Browsers):用于瀏覽當(dāng)前程序所使用的全部對象信息,可以在對象瀏覽器中選種一個或多個控件來打開該控件的屬性編輯器。
三、GUI程序設(shè)計(GUI Program 設(shè)計)
包括圖形界面的設(shè)計和功能設(shè)計兩個方面
例1:用于繪圖和圖形旋轉(zhuǎn)的GUI:
1、布置控件:一個坐標(biāo)系、一個文本框、一個復(fù)選框,一個按鈕
2、定義文本框的屬性:String---簡單設(shè)計示例,F(xiàn)ontName---隸書,F(xiàn)ontSize--22
3、定義坐標(biāo)系: Visible—off
4、定義按鈕屬性: String—繪圖,F(xiàn)ontName,F(xiàn)oregroundColor, ontSize, BackgroundColor,Callback---surf(peaks(30))
5、定義復(fù)選框: String—rotate3D,Callback—rotate3d
例2:設(shè)計一個簡單信號分析儀的程序,要求根據(jù)輸入的兩個頻率和時間間隔,計算函數(shù)x=sin(2πf1t)+sin(2πf2t) 的值,并對函數(shù)進(jìn)行快速傅立葉變換,最后分別繪制時域和頻域的曲線。
1. 設(shè)計圖形界面(GUI 設(shè)計)
設(shè)計步驟:
(1)在布局編輯器中布置控件,
(2)使用幾何位置排列工具對控件的位置進(jìn)行調(diào)整;
(3)設(shè)計控件的屬性;
(4)設(shè)置其他繪圖屬性。
2. 設(shè)置控件的標(biāo)識(Set the Tag of controller)
控件的標(biāo)識(Tag)是對于各控件的識別,每個控件載創(chuàng)建時都會由開發(fā)環(huán)境自動產(chǎn)生一個標(biāo)識,在程序設(shè)計中,為了編輯、記憶和維護(hù)的方便,一般為控件設(shè)置一個新的標(biāo)識。本例設(shè)置第一個坐標(biāo)軸的標(biāo)識為:頻率_axes,用于顯示頻域圖形; 第二個坐標(biāo)軸的標(biāo)識為:時間_axes,用于顯示時域圖形。三個文本編輯框的標(biāo)識為f1_input, f2_input, t_input,分別用于輸入兩個頻率和自變量時間的間隔.
3. 編寫代碼(Editcode)
GUI圖形界面的功能,還是要通過一定的設(shè)計思路和計算方法,由特定的程序來實現(xiàn)。為了實現(xiàn)程序的功能,還需要在運行程序前編寫一些代碼,完成程序中變量的賦值、輸入輸出、計算及繪圖等工作。
一般方法為,內(nèi)容為:
%(1)設(shè)置對象的初始值;
%分別設(shè)置三個文本編輯框的初始值為:
2012年世界一級方程式錦標(biāo)賽_input=20
f2_input=50
f3_input=0:0.001:0.5
%(2)編寫代碼:
%1)從GUI獲得用戶輸入的數(shù)據(jù),本例中輸入的三個數(shù)據(jù)
%分別為頻率1、頻率2和時間間隔。
f1=str2double(get(handles.f1_input,'String'));
f2=str2double(get(handles.f2_input,'String'));
t=eval(get(handles.t_input,'String'));
%2)計算數(shù)據(jù),計算函數(shù)值,按指定點進(jìn)行快速傅立葉變
%換,并計算頻域的幅值和頻域分辨率。
x=sin(2*pi*f1*t)+sin(2*pi*f2*t);
y=fft(x,512);
m=y.*conj(y)/512;
f=1000*(0:256)/512;
%3)在第一個坐標(biāo)軸中繪制頻域曲線。
axes(handles.頻率_axes)
plot(f,m(1:257))
set(handles.frequency_axes,'Xminor真蜱目','on')
gridon
%4)在第二個坐標(biāo)軸中繪制時域曲線。
axes(handles.時間_axes)%選擇適當(dāng)?shù)淖鴺?biāo)軸
plot(t,x)
set(handles.time_axes,'XminorTick','on')
gridon
運行程序(Running program)
例3 :制作一個曲面光照效果的演示界面,如圖所示,三個彈出式菜單分別用于選擇曲面形式、色彩圖、光照模式和反射模式,三個滾動條用于確定光源的位置,一個按鈕用于退出演示。
制作要點:
(1)建立一個靜態(tài)文本,用于顯示界面的標(biāo)題:光照效果演示;
(2)建立坐標(biāo)軸對象,用于顯示圖形;
(3)建立四個下拉菜單,分別用于選擇繪圖表面的形狀、色圖、光照模式和反射模式,每個下拉菜單的上方都有一個靜態(tài)文本用于說明菜單的作用;
(4)在一個frame上建立三個滑條用于確定光源的位置,并在frame上方加一說明;
(5)建立一個按鈕用于退出演示;
callback函數(shù)的內(nèi)容為:
functionvarargout = pushbutton1_Callback(h, event控制資料公司, handles, varargin)
delete(handles.figure1)
functionvarargout = popupmenu1_Callback(h, eventdata, handles, varargin)
VAL=get(h,'value');
switchval
case1
surf(peaks);
case2
Sphere(30);
case3
membrane
case4
[x,y]=meshgrid(-4:.1:4);
r=sqrt(x.^2+y.^2)+eps;
z=sinc(r);
surf(x,y,z)
仙后座e5
[x,y]=meshgrid([-1.5:.3:1.5],[-1:0.2:1]);
z=sqrt(4X^2/9-y.^2/4);
surf(x,y,z);
case6
t=0:pi/12:3*pi;
r=丙烯腈-丁二烯-苯乙烯共聚物(exp(-t/4).*sin(t));
[x,y,z]=cylinder(r,30);
surf(x,y,z);
end
shadinginterp
light('Position',[-3-2 1]);
axisoff
functionvarargout = radiobutton1_Callback(h, event控制資料公司, handles, varargin)
set(h,'value',1)
set(handles.radiobutton2,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton4,'value',0)
lightingflat
functionvarargout = radiobutton2_Callback(h, eventdata, handles, varargin)
set(h,'value',1)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton4,'value',0)
lightinggouraud
functionvarargout = radiobutton3_Callback(h, event控制資料公司, handles, varargin)
set(h,'value',1)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton2,'value',0)
set(handles.radiobutton4,'value',0)
lightingphong
functionvarargout = radiobutton4_Callback(h, eventdata, handles, varargin)
set(h,'value',1)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton3,'value',0)
lightingnone
functionvarargout = popupmenu2_Callback(h, event控制資料公司, handles, varargin)
VAL=get(h,'value');
switchval
case1
colormap(jet)
case2
colormap(H.O.T.)
case3
colormap(cool)
case4
colormap(copper)
仙后座e5
colormap(pink)
case6
colormap(spring)
case7
colormap(summer)
case8
colormap(autumn)
case9
colormap(winter)
end
functionvarargout = popupmenu3_Callback(h, eventdata, handles, varargin)
val=get(h,'value');
switchval
case1
lighting flat
case2
lighting gouraud
case3
lighting phong
case4
lighting none
end
functionvarargout = popupmenu4_Callback(h, event控制資料公司, handles, varargin)
VAL=get(h,'value');
switchval
case1
material shiny
case2
material dull
case3
material metal
case4
material default
end
functionvarargout = slider1_Callback(h, eventdata, handles, varargin)
val=get(h,'value');
set(handles.edit1,'string',num2str(val));
lx==VAL;ly=get(handles.slider2,'value'); ly=get(handles.slider3,'value');
light('Position',[xy z]);
functionvarargout = edit1_Callback(h, event控制資料公司, handles, varargin)
str=get(h,'string');
set(handles.slider1,'value',str2num(str));
lx==str2num(str);ly=get(handles.slider2,'value'); ly=get(handles.slider3,'value');
light('Position',[xy z]);
functionvarargout = slider2_Callback(h, eventdata, handles, varargin)
VAL=get(h,'value');
set(handles.edit2,'string',num2str(val));
lx=get(handles.slider1,'value');lx==val; ly=get(handles.slider3,'value');
light('Position',[xy z]);
functionvarargout = edit2_Callback(h, event控制資料公司, handles, varargin)
str=get(h,'string');
set(handles.slider2,'value',str2num(str));
functionvarargout = slider3_Callback(h, eventdata, handles, varargin)
VAL=get(h,'value');
set(handles.edit3,'string',num2str(val));
functionvarargout = edit3_Callback(h, eventdata, handles, varargin)
str=get(h,'string');
set(handles.slider3,'value',str2num(str));
*對話框設(shè)計:在圖形用戶界面程序設(shè)計中,對話框是重要的信息顯示和獲取輸入數(shù)據(jù)的用戶界面對象。
1、公共對話框:
公共對話框是利用windows資源的對話框,包括文件打開、文件保存、顏色設(shè)置、字體設(shè)置、打印設(shè)置等。
1) 文件打開對話框:用于打開文件
uigetfile
uigetfile(‘FilterSpec’)
uigetfile(‘FilterSpec’,’DIALOGTitle’)
uigetfile(‘FilterSpec’,’DialogTitle’,x,y)
[fname,pname]=uigetfile(…)
2) 文件保存對話框:用于保存文件
uiputfile
uiputfile(‘InitFile’)
uiputfile(‘InitFile’,’DialogTitle’)
uiputfile(‘InitFile’,’DialogTitle’,x,y)
[fname,pname]=uiputfile(…)
3) 顏色設(shè)置對話框:用于圖形對象顏色的交互設(shè)置
c=uisetcolor(‘h_or_c,’DIALOGTitle’)
4) 字體設(shè)置對話框:用于字體屬性的交互式設(shè)置
uisetfont
uisetfont(h)
uisetfont(S)
uisetfont(h,’DialogTitle’)
uisetfont(S,’DialogTitle’)
S=uisetfont(…)
5)打印設(shè)置對話框:用于打印頁面的交互式設(shè)置
dlg=pagesetupdlg(fig)
pagedlg
pagedlg(fig)
6) 打印預(yù)覽對話框:用于對打印頁面進(jìn)行預(yù)覽
printpreview
printpreview(f)
7) 打印對話框:
printdlg
printdlg(fig)
printdlg(‘-crossPlatform’,fig)
printdlg(-‘setup’,fig)
2、MATLAB專用對話框
1)錯誤信息對話框:用于提示錯誤信息
errordlg打開默認(rèn)的錯誤信息對話框
errordlg(‘errorstring’)打開顯示’errorstring’信息的錯誤信息對話框
errordlg(‘errorstring’,’dlgname’)打開顯示’errorstring’信息的錯誤信息對話框,對話框的標(biāo)題由‘dlgname’指定
erordlg(‘errorstring’,’dlgname’,’on’)打開顯示’errorstring’信息的錯誤信息對話框,對話框的標(biāo)題由‘dlgname’指定. 如果對話框已存在,’on’參數(shù)將對話框顯示在最前端。
h=errodlg(…)返回對話框句柄
例:errordlg('輸入錯誤,請重新輸入','錯誤信息')
2) 幫助對話框:用于幫助提示信息
helpdlg 打開默認(rèn)的幫助對話框
helpdlg(‘helpstring’)打開顯示’errorstring’信息的幫助對話框,
helpdlg(‘helpstring’,’dlgname’)打開顯示’errorstring’信息的幫助對話框,對話框的標(biāo)題由‘dlgname’指定
h=helpdlg(…)返回對話框句柄
例:helpdlg('矩陣尺寸必須相等','在線幫助')
3) 輸入對話框:用于輸入信息
answer=inputdlg(prompt)打開輸入對話框,prompt為單元數(shù)組,用于定義輸入數(shù)據(jù)窗口的個數(shù)和顯示提示信息,answer為用于存儲輸入數(shù)據(jù)的單元數(shù)組。
answer=inputdlg(prompt,title)與上者相同,title確定對話框的標(biāo)題。
answer=inputdlg(prompt,title,lineNo)參數(shù)lineNo可以是標(biāo)量、列矢量或m×2階矩陣,若為標(biāo)量,表示每個輸入窗口的行數(shù)均為lineNo;若為列矢量,則每個輸入窗口的行數(shù)由列矢量lineNo的每個元素確定;若為矩陣,每個元素對應(yīng)一個輸入窗口,每行的第一列為輸入窗口的行數(shù),第二列為輸入窗口的寬度。
answer=inputdlg(prompt,title,lineNo,de fAns) 參數(shù)DEFans為一個單元數(shù)組,存儲每個輸入數(shù)據(jù)的默認(rèn)值,元素個數(shù)必須與prompt 所定義的輸入窗口數(shù)相同,所有元素必須是字符串。
answer=inputdlg(prompt,title,lineNo,de fAns,Sesize) 參數(shù)resize決定輸入對話框的大小能否被調(diào)整,可選值為on或off.
例:prompt={'Input Name','Input age'};
title='InputName and Age';
lines=';
DEF={'JohnSmith','35'};
answer=inputdlg(prompt,title,lines,def);
4) 列表選擇對話框:用于在多個選項中選擇需要的值
[selection,ok]=listdlg(‘Liststring’,S,…)輸出參數(shù)selection為一個矢量,存儲所選擇的列表項的索引號,
輸入?yún)?shù)為可選項’Liststring’(單元數(shù)組), ’SelectionMode’(’single’或’multiple’,’ListSize’([wight,height]), ’Name’ (對話框標(biāo)題)等
5) 信息提示對話框:用于顯示提示信息
msgbox(message)打開信息提示對話框,顯示message信息。
msgbox(message,title)title確定對話框標(biāo)題。
msgbox(message,title,’icon’)icon用于顯示圖標(biāo),可選圖標(biāo)包括:none(無圖標(biāo))/error/help/warn/custom(用戶定義)
msgbox(message,title,’custom’,icondata,iconcmap)當(dāng)使用用戶定義圖標(biāo)時,icondata為定義圖標(biāo)的圖像數(shù)據(jù),iconcmap為圖像的色彩圖。
msgbox(…,’creatmode’)選擇模式creatmode,選項為:modal, non_modal,和replace。
h=msgbox(…) 返回對話框句柄
6) 問題提示對話框:用于回答問題的多種選擇
button=questdlg(‘qstring’)打開問題提示對話框,有三個按鈕,分別為:yes,no和cancel,’questdlg’確定提示信息。
button=questdlg(‘qstring’,’title’)title確定對話框標(biāo)題。
button=questdlg(‘qstring’’title’,’default’)當(dāng)按回車鍵時,返回default值default 必須是yes,no或cancel之一。
button=questdlg(‘qstring’,’title’,’str1’,’str2’,’default’)打開問題提示對話框,有兩個按鈕,分別由str1和str2確定,’qstdlg’確定提示信息,default必須是str1或str2之一。
button=questdlg(‘qstring’,’title’,’str1’,’str2’,’str3’,’default’) 打開問題提示對話框,有三個按鈕,分別由str1,str2和str3確定,’qstdlg’確定提示信息,default必須是str1, str2或str3之一。
7) 進(jìn)程條:以圖形方式顯示運算或處理的進(jìn)程
h=waitbar(x,’title’)顯示以title為標(biāo)題的進(jìn)程條,x為進(jìn)程條的比例長度,其值必須在0到1之間,h為返回的進(jìn)程條對象的句柄。
waitbar(x,’title’,’creatcancelbtn’,’button_callback’)在進(jìn)程條上使用creatcancelbtn參數(shù)創(chuàng)建一個撤銷按鈕,在進(jìn)程中按下撤銷按鈕將調(diào)用button_callback函數(shù)。
waitbar(…,property_name,property_value,…)選擇其它由prompt_name定義的參數(shù),參數(shù)值由prompt_value指定。
例:
h=waitbar(0,'pleaswait...');
fori=1:10000
waitbar(i/10000,h)
end
close(h)
8)警告信息對話框:用于提示警告信息
h=warndlg(‘warningstring’,’dlgname’)打開警告信息對話框,顯示warningstring信息,dlgname確定對話框標(biāo)題,h為返回對話句柄。
參考資料 >