1.打开对话框
格式
代码:
[FileName,PathName,FilterIndex] =uigetfile(FilterSpec,DialogTitle);
[FileName,PathName,FilterIndex] =uigetfile(...,'MultiSelect',selectmode)
其中:参数FilterSpe是指定在对话框中显示的文件类型的字符串,如“*.m”、“*.mat”等
等。参数DialogTitle指定对话框的标题。对话框执行后,filename 包含了所选择的文件名,而pathname包含了文件的路径。如果取消对话框,则filename 被设为0。
使用模板:
1.[filename, pathname] =uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');
使用MATLAB默认的解释文件方式。
2. [filename, pathname] = uigetfile( ...
{'*.m;*.fig;*.mat;*.mdl','MATLAB Files(*.m,*.fig,*.mat,*.mdl)';
'*.m','M-files(*.m)'; ...
'*.fig','Figures (*.fig)';...
'*.mat','MAT-files (*.mat)';...
'*.mdl','Models (*.mdl)';...
'*.*','AllFiles (*.*)'}, ...
'Pick a file');
自己修改解释文件的方式。
3. [filename, pathname, filterindex] = uigetfile( ...
{'*.mat','MAT-files (*.mat)';...
'*.mdl','Models (*.mdl)';...
'*.*','AllFiles (*.*)'}, ...
'Pick a file', ...
'MultiSelect', 'on');
通过添加MultiSelect,设置为“on”,可以在按着Shift 或者Ctrl键时选择多个文件。
4. uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','AllFiles' },'mytitle',...
'C:Workmyfile.jpg')
指定默认的文件开始路径和文件名。
5. [filename, pathname] = uigetfile('*.m', 'Pick an M-file');
if isequal(filename,0)
disp('User selectedCancel')
else
disp(['User selected',fullfile(pathname, filename)])
end
2.保存对话框
格式
代码:
[FileName,PathName,FilterIndex] =uiputfile(FilterSpec,DialogTitle)
其中:参数FilterSpe是指定在对话框中显示的文件类型的字符串,如“*.m”、“*.mat”等
等。参数DialogTitle指定对话框的标题。对话框执行后,filename 包含了所选择的文件名,而pathname包含了文件的路径。如果取消对话框,则filename 被设为0。
1. [filename, pathname] =uiputfile({'*.m';'*.mdl';'*.mat';'*.*'},.'Save as');
2. [filename, pathname, filterindex] = uiputfile( ...
{'*.m;*.fig;*.mat;*.mdl','MATLAB Files(*.m,*.fig,*.mat,*.mdl)';
'*.m', 'M-files (*.m)';...
'*.fig','Figures (*.fig)';...
'*.mat','MAT-files (*.mat)';...
'*.mdl','Models (*.mdl)';...
'*.*','All Files(*.*)'},...
'Save as');
3. [filename, pathname] = uiputfile('*.m','Pick an M-file');
if isequal(filename,0) || isequal(pathname,0)
disp('User selectedCancel')
else
disp(['Userselected',fullfile(pathname,filename)])
end
4. uiputfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','AllFiles' },'Save Image',...
'C:Worknewfile.jpg')
3.打开标准对话框保存工作空间的变量
uisave
uisave(variables)
uisave(variables,filename)
代码:
例子:
h = 365;
g = 52;
uisave({'h','g'},'var1');
4.菜单对话框 代码:
select=menu('菜单对话上方的标题','选项一','选项二', ...)
x=linspace(0,2*pi);y=sin(x);p=plot(x,y);
select= menu ('请选择其中一项', '网格线', '星号记号' );
switch select
case 1
grid on
case 2
set(p, 'LineWidth',5);
set(p, 'Marker','*');
end
5.信息对话框:
h=msgbox('显示的信息','对话框标题','信息对话框图标')
信息对话框是非常重要的接口,其中信息允许为字符串、字符串向量或字符串矩阵表达式;此外,对话框图标可以提供多种选择:none(无图标) error(错误提示图标) help(帮助提示图标) warn(警告提示图标)custom(用户自创图标) 默认值为none
其中msgbox(‘信息’,’标题’,’help’)与helpdlg产生相同的效果;
如果要自创图标,必须加上IconData、 IconCMap属性,如以下使用方式:
其中IconData为图标的图像数据,IconCMap为图形的颜色影像。
Data=1:256;Icon=(Data'*Data)/128;
msgbox('左方为自定义的图标','信息对话框图标范例','custom',Icon,copper(128))
1.一般msgbox可以与waitfor函数一起使用,表示必须信息对话框上有按钮被单击后,才会继续执行waitfor后的程序行。
h=msgbox('以上运算已结束 ');
waitfor(h); %必须等到句柄值为h的信息对话上上的【OK】按钮被单击
%后才会执行Score=10的操作
Score=10;
msgbox(['你所得的分数为:',num2str(Score),'分'],'分数为...');
2. 信息对话框可以用于about信息,如作者或程序的描述等。
代码:
s = sprintf(['欢迎使用GUI界面开发平台nn',' Version3.0nn',...
' 我们恭候您的继续支持!']);
msgbox(s,'About Message-Box','help')
3.findall的应用
修改对话框中字体的格式。
代码:
hm=msgbox(['执行错误,当前进度为',num2str(0),'%'],'警告信息','error')
set(hm,'color','w');
th=findall(hm,'Type','Text'); %返回msgbox下的Text对象的句柄值
set(th,'color','r'); %设置字体颜色
set(th,'FontSize',12); %设置字体大小
set(th,'FontName','标楷体'); %设置字体
6.问题对话框
代码:
h=questdlg('问题','选项1','选项2','选项3','默认选项')
Button=questdlg('请问你的性别?','请选择','男性', '女性', '女性');
switch Button
case '男性'
disp('帅哥,你好!');
case '女性'
disp('**,交个朋友吧!')
end
7.帮助对话框
代码:
helpdlg('Choose 10 points from thefigure','Point Selection');
8.输入对话框
代码:
answer =inputdlg(prompt,dlg_title,num_lines)
answer = inputdlg(prompt,dlg_title,num_lines,defAns)
answer =inputdlg(prompt,dlg_title,num_lines,defAns,options)
prompt:提示语,一般为细胞数组
dlg_title:对话框标题
num_lines:输入框间距
defAns:默认值,即打开对话框时显示的数据,必须与提示语的数据相同
options:选择性参数(可以不指定)对应值如下:
Resize:对话框大小是否可以该表,有‘on’与’off’供选择
WindowStyle:对话框类型,有‘modal’与’normal‘供选择
Interpreter:是否设置为符号显示,有’tex’ 与’none’ 供选择
代码:
例子
prompt={'Enter the matrix size forx^2:',...
'Enter the colormap name:'};
name='Input for Peaks function';
numlines=1;
defaultanswer={'20','hsv'};
answer=inputdlg(prompt,name,numlines,defaultanswer);