matlab界面設計---對話框設計


MATLAB GUI對話框設計

   dialog   創建對話框
       errordlg 創建錯誤對話框 
       helpdlg 創建幫助對話框 
       inputdlg 創建輸入對話框 
       listdlg 創建選擇列表對話框 
       msgbox   創建消息對話框 
       pagedlg 顯示頁面的版面對話框 
       printdlg 顯示打印對話框 
       questdlg 問題對話框 
       uigetfile 文件檢索對話框 
       uiputfile 為寫入而顯示的檢索對話框 
       uisetcolor 從對話框交互式設置對象的ColorSpec 
       uisetfont 交互設置對象字體特征 
       warndlg    警告對話框

 

 

*對話框設計:在圖形用戶界面程序設計中,對話框是重要的信息顯示和獲取輸入數據的用戶界面對象。

1、公共對話框:

公共對話框是利用windows資源的對話框,包括文件打開、文件保存、顏色設置、字體設置、打印設置等。

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) 顏色設置對話框:用於圖形對象顏色的交互設置

c=uisetcolor(‘h_or_c,’DialogTitle’)

4) 字體設置對話框:用於字體屬性的交互式設置

uisetfont

uisetfont(h)

uisetfont(S)

uisetfont(h,’DialogTitle’)

uisetfont(S,’DialogTitle’)

S=uisetfont(…)

5)打印設置對話框:用於打印頁面的交互式設置

dlg=pagesetupdlg(fig)

pagedlg

pagedlg(fig)

6) 打印預覽對話框:用於對打印頁面進行預覽

printpreview

printpreview(f)

7) 打印對話框

printdlg

printdlg(fig)

printdlg(‘-crossplatform’,fig)

printdlg(-‘setup’,fig)

 

 

 

2、MATLAB專用對話框

1)錯誤信息對話框:用於提示錯誤信息

errordlg   打開默認的錯誤信息對話框

errordlg(‘errorstring’) 打開顯示’errorstring’信息的錯誤信息對話框

errordlg(‘errorstring’,’dlgname’) 打開顯示’errorstring’信息的錯誤信息對話框,對話框的標題由‘dlgname’指定

erordlg(‘errorstring’,’dlgname’,’on’) 打開顯示’errorstring’信息的錯誤信息對話框,對話框的標題由‘dlgname’指定. 如果對話框已存在,’on’參數將對話框顯示在最前端。

h=errodlg(…)   返回對話框句柄

例:errordlg('輸入錯誤,請重新輸入','錯誤信息')

 

2) 幫助對話框:用於幫助提示信息

helpdlg     打開默認的幫助對話框

 

helpdlg(‘helpstring’)   打開顯示’errorstring’信息的幫助對話框,

helpdlg(‘helpstring’,’dlgname’) 打開顯示’errorstring’信息的幫助對話框, 對話框的標題由‘dlgname’指定

 

h=helpdlg(…)   返回對話框句柄

例:helpdlg('矩陣尺寸必須相等','在線幫助')

 

 

 

3) 輸入對話框:用於輸入信息

answer=inputdlg(prompt)   打開輸入對話框,prompt為單元數組,用於定義輸入數據窗口的個數和顯示提示信息,answer為用於存儲輸入數據的單元數組。

answer=inputdlg(prompt,title)   與上者相同,title確定對話框的標題。

answer=inputdlg(prompt,title,lineNo)   參數lineNo可以是標量、列矢量或m×2階矩陣,若為標量,表示每個輸入窗口的行數均為lineNo;若為列矢量,則每個輸入窗口的行數由列矢量 lineNo的每個元素確定;若為矩陣,每個元素對應一個輸入窗口,每行的第一列為輸入窗口的行數,第二列為輸入窗口的寬度。

answer=inputdlg(prompt,title,lineNo,defAns) 參數defans為一個單元數組,存儲每個輸入數據的默認值,元素個數必須與prompt 所定義的輸入窗口數相同,所有元素必須是字符串。

answer=inputdlg(prompt,title,lineNo,defAns,Sesize) 參數resize決定輸入對話框的大小能否被調整,可選值為on或off.

例:prompt={'Input Name','Input Age'};

title='Input Name and Age';

lines=[2 1]';

def={'John Smith','35'};

answer=inputdlg(prompt,title,lines,def);

 

 

 

4) 列表選擇對話框:用於在多個選項中選擇需要的值

[selection,ok]=listdlg(‘Liststring’,S,…) 輸出參數selection為一個矢量,存儲所選擇的列表項的索引號,

輸入參數為可選項’Liststring’(單元數組), ’SelectionMode’(’single’或’multiple’,   ’ListSize’([wight,height]),   ’Name’ (對話框標題)等

 

 

 

5) 信息提示對話框:用於顯示提示信息

msgbox(message)   打開信息提示對話框,顯示message信息。

msgbox(message,title)   title確定對話框標題。

msgbox(message,title,’icon’) icon用於顯示圖標,可選圖標包括:none(無圖標)/error/help/warn/custom(用戶定義)

msgbox(message,title,’custom’,icondata,iconcmap) 當使用用戶定義圖標時,icondata為定義圖標的圖像數據,iconcmap為圖像的色彩圖。

msgbox(…,’creatmode’)   選擇模式creatmode,選項為:modal, non_modal, 和replace。

h=msgbox(…)    返回對話框句柄

 

 

6) 問題提示對話框:用於回答問題的多種選擇

button=questdlg(‘qstring’) 打開問題提示對話框,有三個按鈕,分別為:yes,no和cancel,’questdlg’確定提示信息。

button=questdlg(‘qstring’,’title’) title確定對話框標題。

button=questdlg(‘qstring’’title’,’default’) 當按回車鍵時,返回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) 進程條:以圖形方式顯示運算或處理的進程

h=waitbar(x,’title’)   顯示以title為標題的進程條,x為進程條的比例長度,其值必須在0到1之間,h為返回的進程條對象的句柄。

waitbar(x,’title’,’creatcancelbtn’,’button_callback’) 在進程條上使用creatcancelbtn參數創建一個撤銷按鈕,在進程中按下撤銷按鈕將調用button_callback函數。

waitbar(…,property_name,property_value,…) 選擇其它由prompt_name定義的參數,參數值由prompt_value指定。

例:

h=waitbar(0,'pleas wait...');

for i=1:10000

   waitbar(i/10000,h)

end

   close(h)


 

 

 

 

MATALB的標准圖形用戶界面


       1. 消息對話框

          msgbox函數。它不接受用戶的任何輸入,在用戶單擊OK按鈕后,對話框自動關閉,然后返回程序中繼續執行。
          >> msgbox('歡迎使用MATLAB')   % 建立一個沒有標題的消息對話框
          >> msgbox('歡迎使用MATLAB','MATALB','warn')   %% 建立一個有標題的消息對話框

       2. 錯誤對話框
       errordlg函數。    >> errordlg   %建立一個默認參數的錯誤對話框
           >> errordlg('這是一個錯誤對話框','MATLAB error') %建立一個名為MATLAB error的錯誤對話框

       3. 警告對話框
       warndlg函數。      >> warndlg %建立一個默認參數的警告對話框
          >> warndlg('這是一個警告對話框','MATLAB warning')

       4. 幫助對話框
       helpdlg函數。
           >> helpdlg('你需要幫助嗎?','MATLAB Help')

       5. 進度條設置對話框
       waitbar函數。作用是反映程序運行的完成情況。
            h=waitbar(0,'請稍等......')
            for i=1:10000
               waitbar(i/10000)
            end

 

       6.輸入對話框
       inputdlg函數。
             prompt={'輸入梯形的上底:','輸入梯形的下底','輸入梯形的高'};%設置提示字符串
               name='Enter trapeaia Data';%設置標題
               numlines=1;%指定輸入數據的行數
               defAns={'20','50','40'};%設定默認值
               Resize='on';%設定對話框尺寸可調節
              answer=inputdlg(prompt,name,numlines,defAns,'on')%創建輸入對話框

       7. 列表對話框
       listdlg函數。
             p=path(path,'C:\MATLAB7\work');%設置路徑,若為當前目錄,可以省略這一步
            d=dir('C:\MATLAB7\work');%獲取指針,若為當前目錄,則d=dir
             str={d.name};%獲取目錄內的文件名
             [sel,ok]=listdlg('Liststring',str,'PromptString','請選擇文件','SelectionMode','Multiple')%創建列表對話框。
文件選擇成功后,單擊“OK‘按鈕,系統將選擇好的文件序號存入相應向量sel,參數ok的值為1。

 

       8.問題對話框
       questdlg函數。提出一個問題,等待用戶回答。默認下回答按鈕有三個:Yes、No、Cancel。當用戶單擊任何一個按鈕時,系統將該按鈕名保存在一個變量(ButtonName)中。如果用戶關閉對話框,則系統將ButtonName置為空。
     >> ButtonName=questdlg('你准備好了嗎?','MATLAB quest','Yes','No','Cancel','Yes')

       9.路徑選擇對話框
       uigedir函數。用於用戶查找和選擇路徑。
           >> directoryname=uigetdir('C:\MATLAB7\work','瀏覽文件件')

       10.選擇文件對話框
       uigetfile函數。用於用戶選擇所需的文件。
            ① >> [fn,pn,fi]=uigetfile('*.m','select a M-file')%打開一個選擇M文件的對話框,並選擇一個文件
           ② [fn,pn,fi]=uigetfile(...
                     {'*.m;*.fig;*.mat;','All MATLAB File(*.m,*.fig,*.mat,*.mdl)';
                     '*.m','M-file(*.m)';...
                     '*.fig','Figure(*.fig)';...
                     '*.mat','MAT-flie(*.mat)';...
                     '*.mdl','Models(*.mdl)';...
                     '*.*','All Flies(*.*)'},...
                     'Pick a file')
             %打開一個選擇多種文件的對話框,並選擇一個文件

       11.文件保存對話框
       uiputfile函數。用於保存文件。
        ① >> [fn,pn,fi]=uiputfile('*.m','Save selected a M-file')
        ② [fn,pn,fi]=uiputfile(...
                     {'*.m;*.fig;*.mat;','All MATLAB File(*.m,*.fig,*.mat,*.mdl)';
                     '*.m','M-file(*.m)';...
                     '*.fig','Figure(*.fig)';...
                     '*.mat','MAT-flie(*.mat)';...
                     '*.mdl','Models(*.mdl)';...
                     '*.*','All Flies(*.*)'},...
                     'Save a file')
                %建立多種保存文件的對話框,並選擇一個文件

       12.頁面設置對話框
       pagesetupdlg函數。用來設置頁面的各種屬性、參數。調用格式為:
            dlg=pagesetupdlg(fig)
       該命令創建一個頁面設置對話框,在該對話框用戶可以設置頁面的各種屬性和參數。該命令只支持單一圖形窗口的頁面設置,參數fig也必須是單一的圖形句柄,不可以是圖形句柄向量或simulink圖。
    
        >> fig=figure;
           >> dlg=pagesetupdlg(fig)

       13.打印設置對話框
       printdlg函數。用戶可以對各種打印參數進行設置。
       x=[-pi:0.02:pi];
       y=cos(x);
       fig=figure;
       plot(x,y);
      printdlg(fig);%打開Windows打印對話框
      printdlg('-crossplatform',fig);%打開MATLAB打印對話框


       14.顏色設置對話框
       uisetcolor函數。用於用戶設置圖形的前景色或背景色。
     
① >> c=uisetcolor %建立一個顏色選擇對話框
      ② %建立一個顏色對話框,並設置對話框的初始顏色,然后
選擇一種顏色用於一個圖形對象

         x=[0:0.02:2*pi];
         y=sin(x);
         h=figure;
         plot(x,y);
         c=uisetcolor(h,'select color')


       15.字體設置對話框
       uisetfont函數。用於用戶設置或修改文本字體、坐標軸或設置控件對象的顯示文本的字體屬性。
     
① >> s=uisetfont    % 建立一個默認字體設置對話框,並設置一種字體。
     
② 對控件中的文本進行設置
       
T1=uicontrol('style','pushbutton','string','確定',...
             'position',[200 320 60 20]);                    %創建一個按鈕
        T2=uicontrol('style','pushbutton','string','取消',...
             'position',[200 220 60 20]);                   %創建一個按鈕
        s=uisetfont(T1)                                             %打開字體設置對話框
        set(T2,s)                                                        %將T1的設置復制到T2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM