《Matlab App Designer設計入門及實戰(zhàn)》課件 第7章 預定義對話框_第1頁
《Matlab App Designer設計入門及實戰(zhàn)》課件 第7章 預定義對話框_第2頁
《Matlab App Designer設計入門及實戰(zhàn)》課件 第7章 預定義對話框_第3頁
《Matlab App Designer設計入門及實戰(zhàn)》課件 第7章 預定義對話框_第4頁
《Matlab App Designer設計入門及實戰(zhàn)》課件 第7章 預定義對話框_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章預定義對話框本章要點預定義對話框是重要的信息顯示和獲取用戶輸入數(shù)據(jù)的界面對象,它是用戶與計算機之間交互的一種手段。MATLAB提供了兩類對話框,即公共對話框和自定義對話框。公共對話框是利用Windows資源的對話框,包括文件打開與保存、顏色與字體設置、打印設置等。自定義對話框,包括進度條、對話框、錯誤對話框等。本章要點:⑴公共對話框調用函數(shù)。⑵自定義對話框調用函數(shù)。學習目標:⑴掌握創(chuàng)建公共對話框函數(shù)。⑵熟悉公共對話框的外觀控制語句,包括:設置對話框的尺寸、標題和文本字體字等。⑶掌握創(chuàng)建自定義對話框函數(shù)。⑷熟悉自定義對話框的外觀控制語句,包括:設置對話框的尺寸、標題、按鈕顯示文本和圖標等。7.1公共對話框常見的MATLAB公共對話框與其調用函數(shù)的對應關系,如表7-1所示。表7-1公共對話框調用函數(shù)函數(shù)含義函數(shù)含義uigetfile文件打開對話框printdlg打印對話框uiputfile文件保存對話框printpreview打印預覽對話框uisetcolor顏色設置對話框pagesetupdlg打印設置對話框uisetfont字體設置對話框

7.1公共對話框7.1.1文件打開對話框(uigetfile)

文件打開對話框由uigetfile函數(shù)創(chuàng)建,通過對話框獲取用戶的輸入,返回選擇的路徑和文件名,并對該文件進行數(shù)據(jù)讀取操作。uigetfile的調用格式為:

file=uigetfile

可列出當前文件夾中的文件,用戶可以選擇或輸入文件的名稱。如果文件存在且有效,當用戶點擊打開時,將返回文件名,如果點擊取消,則返回0。

[file,path]=uigetfile

返回文件的名稱和路徑,若點擊取消,兩個輸出參數(shù)都返回0。[file,path]=uigetfile(filter)

只顯示filter指定后綴的文件,根據(jù)該擴展名查找對話框中顯示的文件。filter為字符串或字符串數(shù)組,用來指定文件的后綴名。

[file,path]=uigetfile(filter,title)

檢索文件,顯示由filter指定后綴的文件,并指定對話框標題為title。

[file,path]=uigetfile(filter,title,defname)

檢索文件,并顯示默認文件名為defname的文件。

[file,path]=uigetfile(filter,title,defname,mode)mode指定用戶是否可以選擇多個文件。將模式設置為'on'將允許進行多選。默認情況下設置為'off'。7.1公共對話框7.1.1文件打開對話框(uigetfile)

【例7-1】通過指定單個或多個后綴,調用文件打開對話框。輸入程序命令如下:[file,path]=uigetfile('*.jpg')彈出對話框如圖7-1所示。選擇background.jpg文件,則命令行結果如下:file='background.jpg'path='E:\Dell\實驗項目\數(shù)學實驗室\MATLAB源程序1\'輸入程序命令如下:[file,path]=uigetfile({'*.jpg','*.bmp','*.gif'})彈出對話框如圖7-2所示。

圖7-2多種文件選擇對話框圖7-1文件選擇對話框圖7.1公共對話框7.1.1文件打開對話框(uigetfile)

【例7-2】通過指定后綴、對話框標題和默認文件名,調用文件打開對話框。輸入程序命令如下:[file,path]=uigetfile('*.mlapp','選擇MATLABAppDesigner文件','app1.mlapp')運行結果如圖7-3所示。再輸入程序命令如下:[file,path]=uigetfile('*.mlapp','選擇MATLABAppDesigner文','app1.mlapp','Multiselect','on')運行結果如圖7-4所示,可以同時選擇多個文件。

圖7-3指定對話框名稱

圖7-4實現(xiàn)選擇多個文件7.1公共對話框7.1.1文件打開對話框(uigetfile)

文件名和路徑分別存于file和path,若要連接文件名和路徑可以采用以下3種方法:str=[file,path]str=strcat(file,path)str=fullfile(file,path)7.1公共對話框7.1.2文件保存對話框(uiputfile)文件打開對話框由uiputfile函數(shù)創(chuàng)建,用于打開保存文件的對話框。uiputfile的調用格式為:file=uiputfile[file,path]=uiputfile[file,path,indx]=uiputfile在上述調用格式的基礎上,等號右側也可以采用如下方式調用:___=uiputfile(filter)___=uiputfile(filter,title)___=uiputfile(filter,title,defname)其中,filter指定后綴,title指定對話框標題,defname指定顯示默認文件名。例如,輸入程序命令如下:>>[file,path,indx]=uiputfile({'*.bmp';'*.jpg'},'選擇MATLABAppDesigner文件')

7.1公共對話框7.1.2文件保存對話框(uiputfile)命令行運行結果如下:file='1.bmp'path='D:\book\'indx=1文件保存對話框如圖7-5所示。

圖7-5文件保存對話框7.1公共對話框7.1.2文件保存對話框(uiputfile)例如,輸入程序命令如下:[filename,pathname,filterindex]=uiputfile(...{'*.m;*.fig;*.mat;*.slx;*.mdl',...'MATLABFiles(*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)';'*.m;*.mlx','programfiles(*.m,*.mlx)';...'*.fig','Figures(*.fig)';...'*.mat','MAT-files(*.mat)';...'*.slx;*.mdl','Models(*.slx,*.mdl)';...'*.*','AllFiles(*.*)'})運行結果如圖7-6所示。

圖7-6文件保存對話框示例7.1公共對話框7.1.3顏色設置對話框(uisetcolor)顏色選擇對話框由uisetcolor函數(shù)創(chuàng)建,調用系統(tǒng)內置的顏色設置對話框,返回用戶選擇的顏色數(shù)據(jù),其調用格式如下:c=uisetcolor顯示顏色選擇器,并以RGB三元組形式返回所選顏色。其中,RGB三元組是三元素行向量,其元素指定顏色的紅、綠和藍分量的強度,強度范圍處于[0,1]之間。c=uisetcolor(RGB)c=uisetcolor(RGB,title)其中,RGB表示三元組的默認顏色數(shù)值,title指定對話框標題。例如,輸入程序命令如下:c=uisetcolor([0.50.50.5]);c=uisetcolor([0.80.40],'請選擇顏色');分別彈出如圖7-7和7-8所示顏色選擇對話框。

7.1公共對話框7.1.3顏色設置對話框(uisetcolor)

圖7-7顏色選擇對話框

圖7-8指定標題顏色選擇對話框7.1公共對話框7.1.3顏色設置對話框(uisetcolor)【例7-3】利用顏色選擇對話框設置曲線顏色。輸入程序命令如下:

clc;clear;closeall;

x=0:0.1:5*pi;

y=sin(x);

t=uisetcolor([0.80.40],'請選擇曲線的顏色');

plot(x,y,'color',t,'linewidth',1.5);運行程序,彈出如圖7-9所示對話框,選擇顏色后,單擊【確定】按鈕,繪制曲線如圖7-10所示。

7.1公共對話框7.1.3顏色設置對話框(uisetcolor)

圖7-9選擇曲線顏色對話框

圖7-10運行結果7.1公共對話框7.1.4字體設置對話框(uisetfont)字體設置對話框由uisetfont函數(shù)創(chuàng)建,用來設置字符、字形和字體大小,調用格式如下:uisetfontuisetfont(h)uisetfont(h,title)

【例7-4】修改曲線標簽的字體和字號。輸入程序命令如下:clc;clear;closeall;x=0:0.1:4*pi;y=sin(x);plot(x,y);t=text(2*pi,0,'正弦曲線');out=uisetfont(t);運行程序,彈出如圖7-11所示字體對話框,選擇相應參數(shù)后,單擊【確定】按鈕,運行結果如圖7-12所示。7.1公共對話框7.1.4字體設置對話框(uisetfont)

圖7-11字體對話框

圖7-12曲線標簽字體設置效果7.1公共對話框7.1.4字體設置對話框(uisetfont)【例7-5】創(chuàng)建MATLABAppDesigner,實現(xiàn)通過上下文菜單組件,設置曲線的顏色和坐標區(qū)標題的字體。第一步:設置布局及屬性。添加1個坐標區(qū)、1個上下文菜單組件。第二步:在組件瀏覽器,右擊e7_5,選擇【回調】,選擇【添加StartupFcn回調】,界面自動跳轉到代碼視圖,在光標定位處,輸入程序命令如下:

globalhx=0:0.1:4*pi;y=sin(x);h=plot(app.UIAxes,x,y,'linewidth',1.5);title(app.UIAxes,'正弦曲線');7.1公共對話框7.1.4字體設置對話框(uisetfont)右擊【設置標題字體】上下文菜單,添加回調函數(shù),輸入程序命令如下:t=app.UIAxes.Title;uisetfont(t);右擊【設置曲線顏色】上下文菜單,添加回調函數(shù),輸入程序命令如下:globalht=uisetcolor([0.80.40],'請選擇曲線的顏色');set(h,'color',t)運行程序,右擊上下文菜單,如圖7-13所示。選擇【設置標題字體】,單擊【確定】按鈕,如圖7-14所示。選擇【設置曲線顏色】,單擊【確定】按鈕,如圖7-15所示。運行結果如圖7-16所示。

7.1公共對話框7.1.4字體設置對話框(uisetfont)

圖7-13上下文菜單運行界面

圖7-14字體設置對話框

圖7-15顏色設置對話框

圖7-16標題字體和曲線顏色設置后效果7.1公共對話框7.1.5打印對話框、打印預覽對話框和頁面設置對話框打印對話框由printdlg函數(shù)創(chuàng)建,其調用格式為:printdlg%打印當前窗口printdlg(fig)%用于打印句柄為fig的窗口打印預覽對話框由printpreview函數(shù)創(chuàng)建,其調用格式為:printpreview%顯示當前窗口的打印預覽printpreview(fig)%顯示窗口f的預覽打印對話框打印設置對話框由pagesetupdlg函數(shù)創(chuàng)建,其調用格式為:dlg=pagesetupdlg(fig)%創(chuàng)建可以設置圖窗窗口fig的頁面布局窗口

7.2自定義對話框常見的MATLAB自定義對話框與其調用函數(shù)的對應關系,如表7-2所示。表7-2自定義對話框調用函數(shù)函數(shù)含義函數(shù)含義waitbar進度條msgbox信息對話框menu菜單選擇對話框questdlg提問對話框dialog普通對話框inputdlg輸入對話框errordlg錯誤對話框uigetdir目錄選擇對話框warndlg警告對話框listdlg列表選擇對話框helpdlg幫助對話框

7.2自定義對話框7.2.1進度條(waitbar)

進度條由waitbar函數(shù)創(chuàng)建,其調用格式為:

waitbar(x) waitbar(x,f) waitbar(x,f,'title')

其中,x表示進度條的長度,取值范圍為[0,1]之間。waitbar(x,f)表示將進度條f中的進度條位置更新到x位置處。'title'為進度條的標題。例如,輸入程序命令如下:f=waitbar(0.2);pause(1);waitbar(0.5,f);

%將進度條f的進度條位置調整為0.5位置pause(1);waitbar(0.7,f);pause(1);waitbar(1,f,'加載完成');

%添加標題為“加載完成”運行程序命令,運行結果如圖7-17所示。7.2自定義對話框7.2.1進度條(waitbar)(a)進度條x=0.2(b)進度條x=0.5(c)進度條x=0.7(d)進度條x=1圖7-17進度條動態(tài)顯示效果7.2自定義對話框7.2.1進度條(waitbar)

MATLAB的waitbar函數(shù)可以設置多種屬性,包括進度條的背景顏色,進度條的前景顏色等。例如:clcclearh=waitbar(0,'請等待...','Color',[0.40.60.4]);%設置背景顏色為淡綠色fori=1:10000progress=i/10000;waitbar(progress,h,sprintf('%d%%',round(progress*100)));endclose(h);

運行結果,如圖7-18所示。圖7-18進度條背景色設置7.2自定義對話框7.2.1進度條(waitbar)【例7-6】創(chuàng)建帶有取消按鈕的進度條,且進度條更新數(shù)據(jù)保留量兩位小數(shù)。輸入程序命令如下:clear;h=waitbar(0,'緩沖中...','CreateCancelBtn',...'setappdata(gcbf,''canceling'',1)');%創(chuàng)建進度為0的進度條pause(0.2);setappdata(h,'canceling',0);steps=80;fori=1:steps%循環(huán)更新進度條顯示pause(0.1);%每隔一段時間完成進度條更新ifgetappdata(h,'canceling')%若按下【取消】按鈕,則退出循環(huán)breakendwaitbar(i/steps,h,sprintf('加載%.2f%%...',i/steps*100));enddelete(h);%退出循環(huán)后,關閉進度條7.2自定義對話框7.2.1進度條(waitbar)運行程序,運行結果如圖7-19所示。

圖7-19有取消按鈕的進度條7.2自定義對話框7.2.1進度條(waitbar)【例7-7】動態(tài)繪制正弦曲線,并用進度條顯示繪制進度。輸入程序命令如下:x=linspace(0,10*pi,300);y=sin(x);fig=figure();line=animatedline('Color','m','LineWidth',1.5);xlim([0,10*pi]);ylim([-1,1]);

h=waitbar(0,'請等待...');

%更新曲線并顯示進度條fori=1:length(x)y=sin(x+i/10);addpoints(line,x(i),y(i));drawnow;

waitbar(i/length(x),h,sprintf('繪制中...%.2f%%',i/length(x)*100));

%更新進度條end

delete(h);%關閉進度條窗口7.2自定義對話框7.2.1進度條(waitbar)程序運行結果如圖7-20所示。

(a)繪制曲線中16%(b)繪制曲線中91%圖7-20進度條顯示動態(tài)繪制曲線進度7.2自定義對話框7.2.2幫助對話框(helpdlg)在MATLAB中helpdlg函數(shù)用于創(chuàng)建幫助對話框,其調用格式為:helpdlghelpdlg(msg)helpdlg(msg,title)f=helpdlg()%返回對話框句柄其中,msg指自定義消息文本,title指自定義對話框標題。例如,輸入程序命令為:helpdlg運行結果如圖7-21所示。例如,當輸入程序命令為:helpdlg('矩形的面積公式為:長*寬','幫助信息');運行結果如圖7-22所示。7.2自定義對話框7.2.2幫助對話框(helpdlg)當需指定帶有換行符的消息時,msg使用字符向量元胞數(shù)組指定。例如,當輸入程序命令為:helpdlg({'矩形的面積公式為:','長*寬'},'幫助信息');運行結果如圖7-23所示。

圖7-21默認幫助對話框

圖7-22自定義信息及標題的幫助對話框圖7-23帶有換行符消息的幫助對話框7.2自定義對話框7.2.2幫助對話框(helpdlg)【例7-8】請創(chuàng)建幫助對話框,并修改對話框背景及按鈕文字標簽。輸入程序命令如下:h=helpdlg('請調節(jié)顏色','幫助');%改變按鈕上的字樣ok_b=findall(0,'style','pushbutton');set(ok_b,'string','我確定')%將按鈕的string屬性改為“我確定”%改變對話框顏色set(h,'Color',[0.60.60.9])運行程序命令,運行結果如圖7-24所示。圖7-24修改對話框背景及按鈕文本標簽7.2自定義對話框7.2.3警告對話框(warndlg)

在MATLAB中使用warndlg函數(shù)創(chuàng)建警告對話框,用于顯示警告信息,其調用格式為:f=warndlgf=warndlg(msg)f=warndlg(msg,title)f=warndlg(msg,title,ops)

其中,msg和title的含義與幫助對話框helpdlg函數(shù)調用格式同理。ops可以設置為non-modal'、'modal'、'replace'或結構體數(shù)組,具體含義為:

non-modal:創(chuàng)建一個非模態(tài)警告對話框,此對話框不影響其他打開的對話框;

modal:指定警告對話框為模態(tài)對話框,將會刪除其他具有相同標題的錯誤、消息和警告對話框。被替代的可以是模態(tài)或非模態(tài)的警告對話框;

replace:指定警告對話框為非模態(tài)對話框,將會刪除其他具有相同標題的錯誤、消息和警告對話框。被替代的可以是模態(tài)或非模態(tài)的警告對話框;

結構體數(shù)組:需為警告對話框指定窗口樣式和解釋器,須具有WindowStyle和Interpreter字段。WindowStyle字段的值為'non-modal'、'modal'或'replace'。Interpreter字段的值為'tex'或'none',默認值為'none'。若Interpreter值是'tex',將message值解釋為TeX。7.2自定義對話框7.2.3警告對話框(warndlg)

【例7-9】創(chuàng)建一個結構體,指定模態(tài)窗口樣式和TeX解釋器。并創(chuàng)建警告對話框,指定結構體作為輸入?yún)?shù)。輸入程序命令如下:opts=struct('WindowStyle','modal','Interpreter','tex');f=warndlg('\color{red}注意:\gamma=\alpha^2+\beta^2','提示',opts);運行程序,運行結果如圖7-25所示。圖7-25警告對話框示例7.2自定義對話框7.2.3警告對話框(warndlg)

【例7-10】請設計一個程序,要求用戶輸入一個數(shù)字,如果該數(shù)字在1~100范圍內,則輸出這個數(shù)字;否則彈出一個警告對話框,提示用戶重新輸入,直到用戶輸入合法數(shù)字。

輸入程序命令如下:x=input('請輸入一個數(shù)字:');whilex<1||x>100h=warndlg('輸入的數(shù)字必須在1和100之間。','警告');uiwait(h);%阻止程序繼續(xù)執(zhí)行,直到用戶關閉對話框x=input('請輸入一個數(shù)字:');enddisp(['您輸入的數(shù)字是:',num2str(x)]);

運行程序,命令行窗口輸入200,則彈出如圖7-26所示對話框。當輸入數(shù)字5,則命令行結果如下:e7_10請輸入一個數(shù)字:200請輸入一個數(shù)字:5您輸入的數(shù)字是:57.2自定義對話框7.2.3警告對話框(warndlg)圖7-26彈出警告對話框7.2自定義對話框7.2.3警告對話框(warndlg)【例7-11】用MATLABAppDesigner實現(xiàn)在編輯框內輸入0到10的數(shù)字,若不在此范圍內,則彈出警告對話框。

第一步:設置布局及屬性。添加1個按鈕和1個編輯字段(數(shù)值)。

第二步:右擊【確定】按鈕,選擇【回調】,選擇【轉至ButtonPushed回調】,界面自動跳轉到代碼視圖,在光標定位處,輸入程序命令如下:x=app.EditField.Value;while(x<0||x>10)h=warndlg('輸入的數(shù)字必須在0和10之間。','警告');uiwait(h);%等待用戶關閉警告對話框happ.EditField.Value=0;x=0;end

運行程序,當輸入數(shù)字“5”運行結果如圖7-27所示,當輸入“25”則彈出如圖7-28所示對話框。7.2自定義對話框7.2.3警告對話框(warndlg)

圖7-27輸入數(shù)字界面

圖7-28警告對話框7.2自定義對話框7.2.4錯誤對話框(errordlg)

錯誤對話框用來提示程序運行過程中出現(xiàn)的錯誤,在MATLAB中,errordlg函數(shù)用于提示錯誤信息,該函數(shù)的調用格式為:f=errordlgf=errordlg(msg)f=errordlg(msg,title)f=errordlg(msg,title,ops)

例如,輸入程序命令如下:errordlg('文件不存在','錯誤')

運行程序,運行結果如圖7-29所示。圖7-29錯誤對話框7.2自定義對話框7.2.4錯誤對話框(errordlg)

錯誤對話框有3個子對象,查看錯誤對話框的子對象的詳細屬性,可執(zhí)行如下代碼:f=errordlg;f1=get(f,'children');fori=1:3get(f1(i))end錯誤對話框與3個子對象之間的關系圖如圖7-30所示。圖7-30錯誤對話框與子對象結構示意圖7.2自定義對話框7.2.4錯誤對話框(errordlg)

【例7-12】請創(chuàng)建錯誤對話框,并自定義錯誤信息的字體、字號、按鈕文字以及圖標。輸入程序命令如下:f=errordlg('輸入格式不正確。','錯誤');f1=get(f,'Children');%獲取對話框h的所有子對象f2=findall(allchild(f),'style','pushbutton');%查找f所有子級的樣式為'pushbutton'的對象set(f2,'string','OK');%將f2字符串屬性(即按鈕文字)改為“OK”。f3=findall(f1,'type','text');%在變量f1中查找所有類型為'text'的控件set(f3,'fontname','黑體','color','b','fontsize',14);f4=findall(f,'type','image');c=imread('1.jpg');c=imresize(c,size(get(f4,'AlphaData')));%imresize調整圖像大小,與AlphaData匹配set(f4,'CData',c);7.2自定義對話框7.2.4錯誤對話框(errordlg)運行程序,運行結果如圖7-31所示。圖7-31自定義錯誤對話框

具體使用錯誤對話框過程中,可以將其與其他程序結合,實現(xiàn)不同錯誤信息的提示,例如,當讀取文件失敗時,提示用戶檢查文件是否存在或文件權限等問題,輸入程序命令如下:if~exist('file.txt','file')errordlg('無法找到文件,請檢查文件路徑是否正確。','文件讀取錯誤');end

例如,當試圖訪問無效的URL地址時,提示用戶該鏈接不存在或無法訪問,輸入程序命令如下:if~exist('file.txt','file')errordlg('無法找到文件,請檢查文件路徑是否正確。','文件讀取錯誤');end

上述程序在實際應用中,需要根據(jù)具體情況進行調整。7.2自定義對話框7.2.5信息對話框(msgbox)

在MATLAB中,msgbox函數(shù)用于顯示提示信息,其調用格式為:f=msgbox(message)f=msgbox(message,title)f=msgbox(message,title,icon)f=msgbox(message,title,custom,icondata,iconcmap)f=msgbox(,createmode)其中,icon指圖標,取值包括:none、help、warn和error,取值與圖標對應關系如表7-3所示。icondata指圖像數(shù)組,可以使用imread從文件中獲取圖像數(shù)組;iconcmap指顏色圖,為RGB三元組的三列矩陣;creatmode指窗口模式,包括"non-modal"、"modal"、"replace"或結構體數(shù)組。7.2自定義對話框7.2.5信息對話框(msgbox)表7-3icon取值與圖標的對應關系表例如,在信息對話框中顯示多行文本,輸入程序命令如下: msgbox({'這里是第一行','這里是第二行','這里是第三行'},'詳細信息');

運行程序命令,運行結果如圖7-32所示。圖7-32多行文本消息的信息框7.2自定義對話框7.2.5信息對話框(msgbox)例如,實現(xiàn)帶有自定義標題的錯誤對話框,程序命令如下:

msgbox('非法輸入!','錯誤','error','modal');運行程序命令,運行結果如圖7-33所示。圖7-33信息對話框實現(xiàn)的錯誤提示7.2自定義對話框7.2.5信息對話框(msgbox)例如,使用自定義圖標對話框,輸入程序命令如下:myicon=imread("1.jpg");h=msgbox("已成功加載","提示","custom",myicon);運行程序,運行結果如圖7-34所示。例如,使用TeX格式消息的模態(tài)消息對話框,程序命令如下:CreateStruct.Interpreter='tex';CreateStruct.WindowStyle='modal';h=msgbox("y=ax^2+bx+c","二次函數(shù)",CreateStruct);運行程序,運行結果如圖7-35所示。

圖7-34自定義圖標信息框

圖7-35使用TeX格式消息的模態(tài)消息對話框7.2自定義對話框7.2.6提問對話框(questdlg)在MATLAB中,用questdlg函數(shù)創(chuàng)建提問對話框,其調用格式為:answer=questdlg(quest)answer=questdlg(quest,title)answer=questdlg(quest,title,defbtn)answer=questdlg(quest,title,btn1,btn2,defbtn)answer=questdlg(quest,title,btn1,btn2,btn3,defbtn)answer=questdlg(,opts)在默認情況下,該對話框有三個標準按鈕,其標簽分別為是、否和取消。若用戶按下其中一個按鈕,則answer值與按下的按鈕的標簽相同;若用戶按下關閉按鈕或Esc鍵,則answer值為空字符向量;若用戶按下Return鍵,則answer值與默認按鈕的標簽相同。其中,defbtn指定默認按鈕。btn1、btn2和btn3指自定義按鈕的標簽。例如,輸入程序命令如下:>>questdlg('您確定要繼續(xù)嗎?',...'提示信息',...'是','否','取消',...'是');

7.2自定義對話框7.2.6提問對話框(questdlg)

程序運行結果如圖7-36所示。

圖7-36提問對話框7.2自定義對話框7.2.6提問對話框(questdlg)【例7-13】創(chuàng)建提問對話框,提問用戶是否滿18周歲,如果回答是,則繼續(xù)詢問用戶的性別信息,并在用戶作出選擇后在命令行窗口顯示所選的選項。輸入程序命令如下:answer=questdlg('您滿18周歲了嗎?','問題提示',... 'Yes','No','Cancel','Yes');switchanswercase'Yes'answer2=questdlg('您的性別?','問題提示','男','女','男');switchanswer2case'男'disp('先生,您已滿18周歲');case'女'disp('女士,您已滿18周歲');endcase'No'disp('您未滿18周歲');case'Cancel'disp('您選擇的是其他');end

7.2自定義對話框7.2.6提問對話框(questdlg)程序運行結果如圖7-37所示,當用戶單擊【Yes】按鈕,則彈出性別信息提問對話框,如圖7-38所示,單擊【女】,則命令窗口輸出結果如下:女士,您已滿18周歲

圖7-37自定義提問對話框

圖7-38性別信息提問對話框7.2自定義對話框7.2.6提問對話框(questdlg)【例7-14】基于MATLABAppDesigner,實現(xiàn)通過單擊按鈕,彈出提問對話框,進而選擇是否在坐標區(qū)繪制曲線。第一步:設置布局及屬性。添加1個按鈕、1個坐標區(qū)和1個標簽。第二步:右擊【繪圖】按鈕,選擇【回調】,選擇【轉至ButtonPushed回調】,界面自動跳轉到代碼視圖,在光標定位處,輸入程序命令如下:answer=questdlg('您確定要在坐標區(qū)繪制曲線嗎?','提示','是','否','是');switchanswercase'是'x=0:0.01:5*pi;y=sin(x);plot(app.UIAxes,x,y,'LineWidth',1.5);case'否'delete(allchild(app.UIAxes));end7.2自定義對話框7.2.6提問對話框(questdlg)運行程序,單擊【繪圖】按鈕,彈出提問對話框,如圖7-39所示,單擊【是】按鈕,即可在坐標區(qū)繪制曲線,如圖7-40所示。

圖7-39提問對話框

圖7-40繪制曲線界面7.2自定義對話框7.2.7菜單選擇對話框(menu)在MATLAB中,創(chuàng)建菜單選項對話框用menu函數(shù),其調用格式為:f=menu('菜單標題','選項1','選項2',...,'選項n')創(chuàng)建一個可以從多個選項中選擇某項的菜單選擇對話框,返回選擇的項對應的索引值,若沒有選擇任何值,返回0,例如:k=menu('請選擇您喜歡的城市','深圳','北京','成都','上海')運行程序,運行結果如圖7-41所示,當選擇【成都】選項,命令行輸出結果如下:k=3

圖7-41菜單選擇對話框7.2自定義對話框7.2.7菜單選擇對話框(menu)【例7-15】實現(xiàn)提問您最喜歡的科目,并將選擇結果返回命令行窗口。方法1:輸入程序命令如下:choice=menu('請選擇您最喜歡的科目','語文','數(shù)學','物理');ifchoice==1disp('您選擇的科目是語文');elseifchoice==2disp('您選擇的科目是數(shù)學');elseifchoice==3disp('您選擇的科目是物理');elsedisp('您未做出選擇');end

7.2自定義對話框7.2.7菜單選擇對話框(menu)方法2:使用字符數(shù)組定義選項和返回值輸入程序命令如下:options={'語文','數(shù)學','物理'};values={'培養(yǎng)語言文字表達和理解能力。',...'培養(yǎng)邏輯思維和問題解決能力。',...'研究自然界物質運動規(guī)律和現(xiàn)象。'};choice=menu('請選擇您最喜歡的科目',options);ifchoice>0disp(['您選擇的是:',options{choice},',該課程主要',values{choice}]);elsedisp('您未做出選擇');end

7.2自定義對話框7.2.8輸入信息對話框(inputdlg)在MATLAB中,用函數(shù)inputdlg創(chuàng)建輸入信息對話框,主要用于返回用戶輸入字符串或字符數(shù)組到一個字符串單元數(shù)組中,其調用格式為:answer=inputdlg(prompt)answer=inputdlg(prompt,dlgtitle)answer=inputdlg(prompt,dlgtitle,dims)answer=inputdlg(prompt,dlgtitle,dims,definput)answer=inputdlg(prompt,dlgtitle,dims,definput,opts)prompt指文本編輯字段標簽,其值指定為字符向量、字符向量元胞數(shù)組或字符串數(shù)組;dlgtitle指對話框標題;dims指文本編輯字段的高度和寬度。若dims是標量,則指定所有編輯字段的高度。若dims是列向量或行向量,則每個元素指定對話框中從上到下每個對應編輯字段的高度。若dims是數(shù)組,則其大小必須為m×2,其中m為對話框中的文本編輯字段數(shù)量,第一列指定高度,第二列指定寬度;definput指定一個或多個文本編輯字段的默認值;opts指定為'on'或結構體;answer返回一個字符向量元胞數(shù)組,包含對話框從上到下每個編輯字段的輸入。

7.2自定義對話框7.2.8輸入信息對話框(inputdlg)【例7-16】通過輸入信息對話框,實現(xiàn)用戶輸入數(shù)字、字符串和邏輯值,并將其存儲到變量中。輸入程序命令如下:prompt={'請輸入一個數(shù)字:','請輸入一個字符串:','請輸入邏輯值(true/false):'};title='多項輸入';dims=[120];definput={'100','abced','true'};answer=inputdlg(prompt,title,dims,definput);num=str2double(answer{1});%str2double函數(shù)可以將字符串轉換為數(shù)值str=answer{2};logic=logical(str2num(answer{3}));%logical函數(shù)可以將數(shù)值轉換為邏輯值

7.2自定義對話框7.2.8輸入信息對話框(inputdlg)程序運行界面如圖7-42所示,單擊【確定】按鈕,返回結果如下:num=100str='abced'logic=logical1

圖7-42輸入信息對話框7.2自定義對話框7.2.8輸入信息對話框(inputdlg)【例7-17】基于MATLABAppDesigner設計,實現(xiàn)通過輸入信息對話框添加圖書信息到表組件。第一步:設置布局及屬性。添加1個表、1個按鈕和1個標簽。第二步:右擊【添加】按鈕,選擇【回調】,選擇【轉至ButtonPushed回調】,界面自動跳轉到代碼視圖,在光標定位處,輸入程序命令如下:prompt={'圖書編號:','圖書名稱:','出版社:','價位(單位:元):'};title='圖書信息';dims=[150];answer=inputdlg(prompt,title,dims);number=answer{1};name=answer{2};sg=answer{3};score=str2double(answer{4});new_data={numbernamesgscore};new_data=cell2table(new_data);app.UITable.Data=[app.UITable.Data;new_data];

7.2自定義對話框7.2.8輸入信息對話框(inputdlg)運行程序,單擊【添加】按鈕,彈出輸入信息對話框,即可輸入相關信息,如圖7-43所示,單擊【確定】按鈕,主界面運行結果如圖7-44所示。

圖7-43圖書信息輸入信息對話框圖7-44圖書基本信息表顯示界面7.2自定義對話框7.2.9列表選擇對話框(listdlg)在MATLAB中,用函數(shù)listdlg創(chuàng)建列表選擇對話框,其調用格式如下:[indx,tf]=listdlg('ListString',list)[indx,tf]=listdlg('ListString',list,'PrompString',prompt)[indx,tf]=listdlg('ListString',list,'PrompString',prompt,,'SelectionMode',mode)[indx,tf]=listdlg('ListString',list,'PrompString',prompt,,'SelectionMode',mode,'InitialValue',...defaultSelection)tf指當單擊OK按鈕時,返回的值為1,當單擊Cancel按鈕或關閉對話框時,返回的值為0;indx表示選項的索引值,例如,當選擇列表第3項時,返回indx=3;'ListString'指定列表項目,list指列表選擇對話框中顯示的項目列表;'PrompString'指定提示信息,prompt值提示信息顯示內容;'SelectionMode'確定模式,mode取值可以是single(單選)或multiple(多選),默認為single;'InitialValue'指定列表中默認選中的項目,defaultSelection為指定項目,默認情況下,沒有任何項目被選中;

7.2自定義對話框7.2.9列表選擇對話框(listdlg)【例7-18】通過列表選擇對話框,實現(xiàn)點菜菜單,即實現(xiàn)5個選項的多選,并設置提示信息及按鈕的文字。輸入程序命令如下:List={'麻婆豆腐','魚香肉絲','清炒時蔬','紅燒魚','黃燜雞'};prompt='請選擇菜品:';OkButtonLabel='點單';cancelButtonLabel='取消';dialogTitle='菜單';[indx,tf]=listdlg('ListString',List,'PromptString',prompt,'CancelString',cancelButtonLabel,...'OkString',OkButtonLabel,'Name',dialogTitle,'ListSize',[180150]);fprintf('您的菜單為:');iftffprintf('%s',List{indx});elsefprintf('無');end

7.2自定義對話框7.2.9列表選擇對話框(listdlg)程序運行結果如圖7-45所示,當選擇其中任意選項后,則命令行窗口顯示結果如下:您的菜單為:魚香肉絲清炒時蔬黃燜雞>>

圖7-45菜單列表選擇對話框7.2自定義對話框7.2.9列表選擇對話框(listdlg)【例7-19】基于MATLABAppDesigner設計通過下拉框選擇三角函數(shù)類型繪制曲線,并利用上下文菜單彈出列表選擇對話框,進而選擇曲線的顏色和線寬。第一步:設置布局及屬性。添加1個坐標區(qū)、1個下拉框和1個上下文菜單。第二步:右擊下拉框組件,選擇【回調】,選擇【添加DropDownValueChanged回調】,界面自動跳轉到代碼視圖,在光標定位處,輸入程序命令如下:globalh;value=app.DropDown.Value;x=0:0.01:5*pi;switchvaluecase'正弦函數(shù)'y=sin(x);h=plot(app.UIAxes,x,y);title(app.UIAxes,'正弦函數(shù)');

7.2自定義對話框7.2.9列表選擇對話框(listdlg)case'余弦函數(shù)'y=cos(x);h=plot(app.UIAxes,x,y);title(app.UIAxes,'余弦函數(shù)');case'正切函數(shù)'y=tan(x);h=plot(app.UIAxes,x,y);title(app.UIAxes,'正切函數(shù)');end

右擊上下文子菜單中的“顏色”子菜單,選擇【回調】,選擇【添加MenuSelected回調】,界面自動跳轉到代碼視圖,在光標定位處,輸入程序命令如下:7.2自定義對話框7.2.9列表選擇對話框(listdlg)globalh;List={'黃色','紅色','綠色','藍色'};prompt='請選擇曲線顏色:';dialogTitle='顏色';[indx,tf]=listdlg('ListString',List,'PromptString',prompt,'Name',dialogTitle,...'SelectionMode','single','ListSize',[150100]);if~tfwarndlg('您沒有選擇任何顏色','警告');elseswitchindx

溫馨提示

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

評論

0/150

提交評論