使用函数uimenu创建菜单.
使用示例:
clear all ;
clc ;
rect=get(0,'screenSize');%获取屏幕尺寸
N=512;%屏幕尺寸
%创建图形窗口
gwin=figure('MenuBar','none','NumberTitle','off','Name','菜单创建演示',...
'Position',[(rect(3)-N)/2,(rect(4)-N)/2,N,N],'Resize','off');
axis([0 12 0 15]);
set(gca,'xtick',[0:0.5:12]);%设置横坐标轴的间距
set(gca,'ytick',[0:1:15]);%设置纵坐标轴的间距
%创建一级菜单
hw0=uimenu(gwin,'label','&FILE');
hw1=uimenu(gwin,'label','&EDIT');
hw2=uimenu(gwin,'label','&VIEW');
hw3=uimenu(gwin,'label','&HELP');
%创建二级菜单
hw00=uimenu(hw0,'label','&NEW');
hw01=uimenu(hw0,'label','&OPEN');
hw02=uimenu(hw0,'label','&SAVE');
hw03=uimenu(hw0,'label','&SAVE AS...');
%创建三级菜单
hw000=uimenu(hw00,'label','txt');
hw001=uimenu(hw00,'label','doc');
%set(hw0,'Accelerator','F');
%创建三级菜单并绘图,回调函数调用函数形式一
hw002=uimenu(hw00,'label','Plot1','Callback','x=0:pi/10:2*pi;y=sin(x).^2+cos(x);plot(x,y,''r'')');
%回调函数调用函数形式二:调用qiexian.m文件
hw003=uimenu(hw00,'label','Plot2','Callback','qiexian');
my=inline('x.^2+2*x+y.^2=5*sin(x*y)','x','y');
hw004=uimenu(hw00,'label','Plot3','Callback','f=ezplot(my);set(f,''color'',''k'')');
%回调函数调用函数形式三
hw005=uimenu(hw00,'label','Plot4','Callback',...
['[x,y]=meshgrid(-8:0.5:8);'...
'z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);'...
'mesh(x,y,z);']);
注意:当在单引号中的内容还含有单引号的情况下,应将原来的单引号改为双单引号.
对话框控件元素表
关键词 |
简称 |
意义 |
text |
text |
静态文本框 |
edit |
edit |
编辑框 |
listbox |
list |
列表框 |
popupmenu |
popup |
弹出框 |
slider |
slider |
滑动条 |
pushbutton |
push |
按纽 |
radiobutton |
radio |
单选按纽 |
checkbox |
check |
复选框 |
先创建一个绘图窗口.
clear all ;
clc ;
rect=get(0,'screenSize');%获取屏幕尺寸
N=512;%屏幕尺寸
gwin=figure('MenuBar','none','NumberTitle','off','Name','菜单创建演示',...
'Position',[(rect(3)-N)/2,(rect(4)-N)/2,N,N],'Resize','off');
27.1创建静态文本框
htext=uicontrol(gwin,'Style','text','String','Select Color','Position',[120,200,100,30]);
说明:此处设置的坐标为绝对坐标.
27.2创建组框
rect=get(gwin,'Position');%获取绘图窗口坐标
uicontrol(gwin,'Unit','normalized','Style','Frame','position',[100/rect(1),20/rect(2),200/rect(3),50/rect(4)]);
说明:此处属性'Unit'表示设置创建的控件的坐标是相对坐标,坐标中的四个数值均为分数,分子表示相对坐标值,分母为父窗口的坐标.并且此属性设置必须放在其它属性设置前面.
27.3创建单选按钮
rect=get(gwin,'Position');
hradio1=uicontrol(gwin,'Unit','Normalized','Style','radio','String','red','Position',...
[100/rect(1),100/rect(2),200/rect(3),25/rect(4)],'value',0,'Callback',...
['set(gwin,''color'',''red'');'...
'set(hradio1,''value'',1);'...
'set(hradio2,''value'',0);'...
'set(hradio3,''value'',0);']);
hradio2=uicontrol(gwin,'Unit','Normalized','Style','radio','String','blue','Position',...
[100/rect(1),90/rect(2),200/rect(3),25/rect(4)],'value',0,'Callback',...
['set(gwin,''color'',''blue'');'...
'set(hradio1,''value'',0);'...
'set(hradio2,''value'',1);'...
'set(hradio3,''value'',0);']);
hradio3=uicontrol(gwin,'Unit','Normalized','Style','radio','String','green','Position',...
[100/rect(1),80/rect(2),200/rect(3),25/rect(4)],'value',0,'Callback',...
['set(gwin,''color'',''green'');'...
'set(hradio1,''value'',0);'...
'set(hradio2,''value'',0);'...
'set(hradio3,''value'',1);']);
说明:当’value’属性设置为1时表示该单选按钮被选中,否则没有选中.
27.4创建按钮
【例一】:绘图
pbstart=uicontrol(gcf,'Style','push','Position',[20,20,100,25],...
'String','start plot','Foreground','r','Background','b',...
'Callback','t=-pi:pi/20:pi;plot(t,sin(t))');
说明:BackgroundColor和ForegroundColor属性。分别用来控制元件的前景和背景颜色,其取值仍然为1×3的颜色配比向量。例如对按钮控制元件来说,前景颜色即指按钮上的字符颜色,而背景颜色为整个按钮的颜色。
【例二】:显示图像
gwin=figure('KeyPressFcn','comm2(hbutton)');%当按下键盘时调用comm2.m文件
hbutton=uicontrol('Style','pushbutton','Units','normalized',...
'Position',[0.2,0.2,0.6,0.6],'Callback','comm2(hbutton)');%按下按钮时调用comm2.m文件
%%%%%%%%%%%comm2.M文件内容如下%%%%%%%%%%%
function comm2(hbutton)
hid=imread('F:\pictures\Pure girl\1.jpg');
set(hbutton,'Cdata',hid);%显示图像
27.5创建复选按钮
winw=rect(3);
winh=rect(4);
hn=uicontrol(gcf,'Style','check','Position', [0.1*winw,0.2*winh,0.25*winw,0.1*winh],...
'String','MyName','CallBack',['set(gcf,''Name'',''复选框未选中'');',...
'if get(hn,''Value'')==1,','set(gcf,''Name'',''复选框被选中''),','end']);
27.6创建下拉列表框
hpop=uicontrol(gcf,'Style','popup','String','red|blue|green|yellow','Position',[100,100,100,80],...
'CallBack',['cbcol=[''R'',''B'',''G'',''Y''];'...
'set(gcf,''Color'',cbcol(get(hpop,''Value'')))']);
说明:弹出框可选项在String属性中设置,每项之间用竖线字符“|”隔开,并用单撇号将所有的选项括起来。Value属性的值是弹出式列表中选项的序号。例如,如果用户选列表中的第4项,那么Value的属性值就是4。
27.7创建列表框
hlist=uicontrol(gcf,'Style','list','String','red|blue|green|yellow',...
'Position',[100,100,100,80],'CallBack',...
['cbcol=[''r'',''b'',''g'',''y''];',...
'set(gcf,''Color'',cbcol(get(hlist,''Value'')));']);
27.8创建滑动条
hslid1=uicontrol(gwin,'Style','slider','Position',[50,50,120,20],...
'Min',200,'Max',800,'Value',400,'CallBack',...
['set(azmcur,''String'',num2str(get(hslid1,''Value'')));'...
'set(gcf,''Position'',[50,50,get(hslid1,''Value''),300]);']);
azmcur=uicontrol(gwin,'Style','text','Position',[50,80,50,20],...
'String',num2str(get(hslid1,'Value')));
27.9创建编辑框
hedit=uicontrol(gwin,'Style','edit','Unit','normalized',...
'Position',[0.63,0.55,0.2,0.1],'String','10','Min',1,'Max',3);
说明:
参数’Min’与’Max’共同设置编辑框可输入文本的行数,当Max-Min>1时表示可以输入多行;当Max-Min<=1时表示只能输入单行.例如Min=1,Max=2;Min=1,Max=-2均表示只能输入单行文本.Max=3,Min=1就表示可以输入多行文本,并且行数没有最大值限制.缺省情况是只能输入单行文本.
对于下拉列表框及列表框等其它控件均可以进行类似的设置.
27.10获取一些控件的值(或内容)
说明:如果列表框中设置可以选中多行时,则返回的值为一个行向量,各元素分别表示选中的项的索引值.
27.11一些控件属性设置
set(hedit,'HorizontalAlignment','left');
%设置左对齐,hedit为编辑框句柄.
set(hedit,'Enable','off');
%设置编辑框为只读,不可修改内容.
错误对话框: h = errordlg(errorstring,dlgname,createmode);
帮助对话框: helpdlg('helpstring','dlgname');
输入对话框: answer = inputdlg(prompt,dlg_title,num_lines);
列表框对话框: [Selection,ok] = listdlg('ListString',S);
弹出消息框: h = msgbox(Message,Title,Icon);
询问对话框: button = questdlg('qstring','title');
警告对话框:h = warndlg(warningstring,dlgname);