matlab介面設計—對話方塊設計

來源:互聯網
上載者:User

課題好幾天沒有進展了,不知道是我的方法用錯了呢,還是其他的原因。先放一下這個問題,做一個介面設計,也挺麻煩的,找了好幾天的資料終於今天下午找到了,放在這裡以免以後忘記了找不到。嘿嘿。
    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
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.