技术蛀虫

导航

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

posted on 2012-05-09 09:28  技术蛀虫  阅读(12654)  评论(0编辑  收藏  举报