资源描述:
《第6章 matlab图形用户界面设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB@SDU1第6章MATLAB图形用户界面设计图形用户界面GraphicalUserInterface:GUI6.1菜单设计6.2对话框设计6.3用户界面设计工具MATLAB@SDU26.1菜单设计菜单(uimenu):以figure图形窗口对象作为“父”,从一批功能选项中浏览和选择某项功能图形窗口标准菜单的操作MenuBar属性:none隐藏图形窗口的标准菜单figure显示标准菜单例:h_figure=figureset(h_figure,’menubar’,’none’)set(h_figure,’menubar’,’figure’)set(gcf,’menubar’,’
2、figure’)MATLAB@SDU3用户菜单的建立Uimenu来创建菜单对象建立一级菜单项的函数调用形式为:一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)建立子菜单项的函数调用形式为:子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,…)注:默认排列在标准菜单右边;自制子菜单按照创建先后自上而下排列.hm=uimenu(gcf,’Label’,’File’);hm1=uimenu(hm,’Label’,’Save’);hm2=uimenu(hm,’Label’,’Saveas’);Hm3=uimenu(hm,’
3、Label’,’exit’);例:MATLAB@SDU4菜单对象常用属性Enable:on/off启动或者禁止菜单功能Position:标量指定菜单的相对位置(同级对象比较)例如主菜单中position为1的菜单在最左边Separator:on/off菜单中产生分隔效果Visible:on/off菜单是否可见Parent:对象句柄值标明了菜单对象所在的图形窗口或其父菜单Children:空矩阵或者句柄值向量,是由子菜单对象的句柄组成的数组Label:string,命名用户菜单项名称Callback:string可以是标准命令,或者path中设置路径可找到的m文件MATLAB@SDU5例建
4、立“图形演示系统”菜单。菜单条中含有3个菜单项:Plot、Option和Quit。Plot中有SineWave和CosineWave两个子菜单项,分别控制在本图形窗口画出正弦和余弦曲线。Option菜单项的内容:其中Gridon和Gridoff控制给坐标轴加网格线,Boxon和Boxoff控制给坐标轴加边框,而且这4项只有在画有曲线时才是可选的。FigureColor控制图形窗口背景颜色。Quit控制是否退出系统。(exp01,exp11)程序如下:MATLAB@SDU6效果图MATLAB@SDU7快捷菜单(右键菜单)在MATLAB中,可以使用uicontextmenu函数和图形对象的U
5、IContextMenu属性来建立快捷菜单,具体步骤为:(1)利用uicontextmenu函数建立快捷菜单。(2)利用uimenu函数为快捷菜单建立菜单项。(3)利用set函数将该快捷菜单和某图形对象联系起来。注意:右键只有与相应的图形对象相关联例:建立快捷菜单,对曲线的颜色进行设定(exp12)MATLAB@SDU8t=(-5*pi:pi/40:5*pi)+eps;y=sin(t)./t;hline=plot(t,y);%绘制Sa曲线cm=uicontextmenu;%创建现场菜单%制作具体菜单项,定义相应的回调uimenu(cm,'label','green','callback'
6、,'set(hline,''color'',''g''),')uimenu(cm,'label','blue','callback','set(hline,''color'',''b''),')uimenu(cm,'label','red','callback','set(hline,''color'',''r''),')set(hline,'uicontextmenu',cm)%将cm现场与Sa曲线相联系MATLAB@SDU9例绘制曲线y=2e-0.5xsin(2πx),并建立一个与之相联系的快捷菜单,用以控制曲线的线型和曲线宽度。(exp02)程序如下:x=0:pi/100:2*pi
7、;y=2*exp(-0.5*x).*sin(2*pi*x);hl=plot(x,y);hc=uicontextmenu;%建立快捷菜单hls=uimenu(hc,'Label','线型');%建立菜单项hlw=uimenu(hc,'Label','线宽');uimenu(hls,'Label','虚线','Call','set(hl,''LineStyle'','':'');');uimenu(hls,'Label','实线','C