matlab中gui教程(2)

2019-03-22 17:43

图11.3.3.1-2 通过顶层菜单Test形成的带分格的封闭坐标轴

(4)产生图11.3.3.1-2界面的uimenu的书写格式二:方括号续行号表示法

uimenu('Label','Test', ... 'Callback',['grid on,' , ... 'set(gca,''box'',''on'');'])

(5)产生图11.3.3.1-2界面的uimenu的书写格式三:串变量法

Lpv='Test';

Cpv=['grid on,','set(gca,''box'',''on''),']; uimenu('Label', Lpv, 'Callback' , Cpv)

(6)产生图11.3.3.1-2界面的uimenu的书写格式四:构架表示法

PS.Label='Test';

PS.Callback=['grid on;','set(gca,''box'',''on'');']; uimenu(PS)

11.3.3.2 设置简捷键或快捷键

【*例11.3.3.2-1】本例目标:使图11.3.2-1所示菜单成为图11.3.3.2-1那样,Color菜单项及其下拉的Blue菜单各带一个简捷键,而另一项下拉菜单Red带一个快捷键。 [exm11332_1.m] figure

h_menu=uimenu(gcf,'Label','&Color'); %带简捷键C的用户菜单Color <2> h_submenu1=uimenu(h_menu,'Label','&Blue',... %带简捷键B的的下拉菜单Blue <3> 'Callback','set(gcf,''color'',''blue'')');

h_submenu2=uimenu(h_menu,'label','Red',... %制作另一个下拉菜单Red 'Callback','set(gcf,''color'',''red'')',...

'Accelerator','r'); %为Red菜单设置快捷键R <7>

6

图 11.3.3.2-1 为用户菜单设置快捷键

11.3.3.3 用户菜单的外观设计

【*例11.3.3.3-1】本例演示:(A)把用户菜单 'Option' 设置为顶层的第3菜单项;(B)下拉菜单被两条分隔线分为三个菜单区;(C)最下菜单项又有两个子菜单组成。 (1)编写程序,生成如图11.3.3.3-1所示界面 [exm11333_1.m] figure

h_menu=uimenu('label','Option','Position',3);

h_sub1=uimenu(h_menu,'label','grid on','callback','grid on'); h_sub2=uimenu(h_menu,'label','grid off','callback','grid on'); h_sub3=uimenu(h_menu,'label','box on','callback','box on',...

'separator','on'); %<6> h_sub4=uimenu(h_menu,'label','box off','callback','box off');

h_sub5=uimenu(h_menu,'label','Figure Color','Separator','on'); %<8> h_subsub1=uimenu(h_sub5,'label','Red','ForeGroundColor','r',... %<9> 'callback','set(gcf,''Color'',''r'')'); h_subsub2=uimenu(h_sub5,'label','Reset',... 'callback','set(gcf,''Color'',''w'')');

图11.3.3.3-1

(2)位置属性的获取

Pos_O=get(h_menu,'position'), Pos_BoxOn=get(h_sub3,'position') Pos_Red=get(h_subsub1,'position') Pos_O = 3

Pos_BoxOn = 3 Pos_Red = 1

%查询Option菜单位置值 %查询box ob子菜单位置值 %查询red子菜单的位置值

【*例11.3.3.3-2】本例演示:当某菜单项选中后,如何使该菜单项贴上检录符“√”。 [exm11333_2.m] figure

h_menu=uimenu('label','Option');

h_sub1=uimenu(h_menu,'label','Grid on',... %<3>

7

'callback',[... 'grid on,',...

'set(h_sub1,''checked'',''on''),',... 'set(h_sub2,''checked'',''off''),',... ]);

h_sub2=uimenu(h_menu,'label','Grid off',... 'callback',[... 'grid off,',...

'set(h_sub2,''checked'',''on''),',... 'set(h_sub1,''checked'',''off''),',... ]);

%<4>

图 11.3.3.3-2 Grid on菜单选中后出现检录符

11.3.3.4 使能(Enable)与可见性(Visible)属性

【*例11.3.3.4-1】 本例目标:制作一个带四个子菜单项的顶层菜单项;该下拉菜单分为两个功能区;每个功能区的两个菜单项是相互对立的,因此采用使能属性处理;当图形窗坐标轴消隐时,整个坐标分隔控制功能区不可见。 (1)编写如下脚本M文件exm11334_1.m [exm11334_1.m] clf

h_menu=uimenu('label','Option'); %产生顶层菜单项Option

h_sub1=uimenu(h_menu,'label','Axis on'); %产生Axis on菜单项,由缺省设置而使能 h_sub2=uimenu(h_menu,'label','Axis off',...

'enable','off'); %产生Axis off菜单项,但失能 h_sub3=uimenu(h_menu,'label','Grid on',... 'separator','on','visible','off'); %产生与上分隔的Grid on菜单项,但不可见 h_sub4=uimenu(h_menu,'label','Grid off',... 'visible','off'); %产生Grid off菜单项,但不可见

set(h_sub1,'callback',[... %选中Axis on菜单项后,产生回调操作 'Axis on,',... %画坐标

'set(h_sub1,''enable'',''off''),',... %Axis on菜单项失能 'set(h_sub2,''enable'',''on''),',... %Axis off菜单项使能 'set(h_sub3,''visible'',''on''),',... %Grid on菜单项可见 'set(h_sub4,''visible'',''on''),']); %Grid off菜单项可见

set(h_sub2,'callback',[... % %选中Axis off菜单项后,产生回调操作 'axis off,',... %使坐标消失

'set(h_sub1,''enable'',''on''),',... %Axis on菜单项使能 'set(h_sub2,''enable'',''off''),',... %Axis off菜单项失能

8

'set(h_sub3,''visible'',''off''),',... %Grid on菜单项不可见 'set(h_sub4,''visible'',''off''),']); %Grid off菜单项不可见

set(h_sub3,'callback',[... %选中Grid on菜单项后,产生回调 'grid on,',... %画坐标分格线 'set(h_sub3,''enable'',''off''),',... %Grid on菜单项失能 'set(h_sub4,''enable'',''on''),']); %Grid off菜单项使能

set(h_sub4,'callback',[... %选中Grid off菜单项,产生回调 'grid off,',... %消除坐标分格线 'set(h_sub3,''enable'',''on''),',... %Grid on菜单项使能 'set(h_sub4,''enable'',''off''),']); %Grid off菜单项失能 (2)在MATLAB指令窗中运行exm11334_1 ,得到图11.3.3.4-1所示的界面

图11.3.3.4-1

(3)选中【Option】菜单项,界面呈现如图11.3.3.4-2 所示。

图11.3.3.4-2

(4)选中【Option:Axis on】后,界面呈现如图11.3.3.4-3 所示。

图11.3.3.4-3

(5)选中【Option:Grid on】后,界面呈现如图11.3.3.4-4 所示。

图11.3.3.4-4

9

11.3.4 现场菜单的制作

【*例11.3.4-1】目标:绘制一条Sa曲线,创建一个与之相联系的现场菜单,用以控制Sa曲线的颜色。

(1)编写脚本M文件exm1134_1.m [exm1134_1.m]

t=(-3*pi:pi/50:3*pi)+eps; y=sin(t)./t;

hline=plot(t,y); %绘制Sa曲线 cm=uicontextmenu; %创建现场菜单 %制作具体菜单项,定义相应的回调

uimenu(cm,'label','Red','callback','set(hline,''color'',''r''),') uimenu(cm,'label','Blue','callback','set(hline,''color'',''b''),') uimenu(cm,'label','Green','callback','set(hline,''color'',''g''),')

set(hline,'uicontextmenu',cm) %使cm现场菜单与Sa曲线相联系

(2)在指令窗中运行文件exm1134_1.m ,得到图11.3.4-1所示的(但为蓝色的)Sa曲线。

图 11.3.4-1 Context菜单

(3)将鼠标指针指向线条,点击鼠标右键的同时弹出现场菜单,在选中某菜单项(如Red)后,Sa曲线就改变(为红)颜色(如图11.3.4-1所示)。

11.4 用户控件(uicontrol)

11.4.1 控件制作函数 11.4.2 用户控件的种类 11.4.3 控件制作示例

11.4.3.1 双位按键、无线电按键、控件区域框示例

【*例11.4.3.1-1】目标:创建一个界面包含4种控件:静态文本、“无线电”选择开关、双位按键、控件区域框。 [exm11431_1.m] clf reset

set(gcf,'menubar','none')

10


matlab中gui教程(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:如何练好接发球(张晓鹏)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: