发布企业信息

Matlab 界面菜单(uimenu)

作者:未知  信息来源:未知  2006-1-26

字体大小:  网友评论  进入论坛  

3 界面菜单(uimenu)11。(1)获得缺省设置的标准菜单figure(2)隐去标准菜单的两种方法set(H_fig , ‘MenuBar‘,‘none‘) 。set(gcf,‘menubar‘,menubar)。(3)恢复图形窗上标准菜单set(gcf,‘menubar‘,‘figure‘)。...
11.3 界面菜单(uimenu)
11.3.1 图形窗的标准菜单

【例 11.3.1 -1 】本例说明:如何隐藏和恢复标准菜单的显示。

(1)获得缺省设置的标准菜单
figure

(2)隐去标准菜单的两种方法
set(H_fig , 'MenuBar','none') ;
set(gcf,'menubar',menubar);

(3)恢复图形窗上标准菜单
set(gcf,'menubar','figure');

图 11.3.1 -1 含有菜单条的图形窗

图 11.3.1 -2 移去菜单条的图形窗



11.3.2 自制的用户菜单
【 * 例 11.3.2-1 】本例演示:如何自制一个带下拉菜单表的用户菜单(如图 11.3.2-1 所示)。该菜单能使图形窗背景颜色设置为兰色或红色。

figure % 创建一个图形窗
h_menu=uimenu(gcf, 'label' , 'Color' ); % 制作用户顶层菜单项 Color <2>
h_submenu1=uimenu(h_menu, 'label' , 'Blue' , ... % 制作下拉菜单项 Blue <3>
'callback' , 'set(gcf,''Color'',''blue'')' ); %<4>
h_submenu2=uimenu(h_menu, 'label' , 'Red' , ... % 制作下拉菜单 Red <5>
'callback' , 'set(gcf,''Color'',''red'')' ); %<6>


图 11.3.2-1 创建用户菜单示例


11.3.3 用户菜单的属性
11.3.3.1 回调属性和菜单名
【 * 例 11.3.3.1-1 】本例的目标是:在图形窗上自制一个名为【 Test 】的“顶层菜单项”;当用鼠标点动该菜单项时,将产生一个带分格的封闭坐标轴。通过本例说明:
(A)回调属性的运作机理;
(B)用户顶层菜单项的制作
(C) uimenu 属性的设置方法;
(D)复杂字符串的构成方法和注意事项。

(1)在 MATLAB 指令窗中运行以下程序可产生带分格的封闭坐标轴(见图 11.3.3.1-1 )
grid on,set(gca,'box','on')

图 11.3.3.1-1 带分格的封闭坐标轴

(2)在 MATLAB 指令窗中用以下 eval 指令可产生与图 11.3.3.1-1 相同的界面
eval('grid on,set(gca,''box'',''on'')')

(3) 产生 图 11.3.3.1-2 界面的 uimenu 的书写格式一:直接连续表示法
uimenu('Label','Test','Callback','grid on,set(gca,''box'',''on''),')

图 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>

图 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'), % 查询 Option 菜单位置值
Pos_BoxOn=get(h_sub3,'position') % 查询 box ob 子菜单位置值
Pos_Red=get(h_subsub1,'position') % 查询 red 子菜单的位置值
Pos_O =
3
Pos_BoxOn =
3
Pos_Red =
1

【 * 例 11.3.3.3-2 】本例演示:当某菜单项选中后,如何使该菜单项贴上检录符“ √”。
[exm11333_2.m]
figure
h_menu=uimenu( 'label' , 'Option' );
h_sub1=uimenu(h_menu, 'label' , 'Grid on' , ... %<3>
'callback' ,[ ...
'grid on,' , ...
'set(h_sub1,''checked'',''on''),' , ...
'set(h_sub2,''checked'',''off''),' , ...
]);
h_sub2=uimenu(h_menu, 'label' , 'Grid off' , ... %<4>
'callback' ,[ ...
'grid off,' , ...
'set(h_sub2,''checked'',''on''),' , ...
'set(h_sub1,''checked'',''off''),' , ...
]);

图 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 菜单项失能
'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



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 所示)。

分页:
Google


推荐图文

广告

机械热点图文

  • 数控车床加工编程典型实例分析2
  • 内螺纹车削加工——数控车床编程实例42
  • 子程序编程方法-数控车床编程实例36
  • 塑料模具动画演示

机械风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》