uimenu 菜单及设计

45 篇文章 10 订阅
订阅专栏
15 篇文章 1 订阅
订阅专栏

1.uimenu 菜单及设计

菜单是动态呈现的选择列表,它对应于相关方法(常称为命令)或GUI状态。菜单可以包含其他菜单或者菜单项,也可以包含菜单(即分层的菜单),表示可以执行的命令或所选择的GUI状态。菜单可以与应用程序的菜单栏相关,也可以漂浮在应用程序窗口之上,形成弹出式菜单。

1.1建立用户菜单

MATLAB的各个图形窗口有自己的菜单栏,包括File,Edit,Windows和Help等菜单项。为了建立用户自己的菜单系统,可以先将图形窗口的MenuBar属性事先设置为none,以取消图形窗口默认的菜单,然后再建立用户自己的菜单。要建立用户菜单可用uimenu函数,uimenu函数的调用格式为

H = uimenu(Hp,属性名1,属性值1,属性名2,属性值2, …)

其功能为创建句柄值为 Hm 的自定义的用户菜单。Hp为其父对象的句柄,属性名和属性值构成属性二元对,定义用户菜单的属性。

该函数可以用于建立一级菜单项和子菜单项。建立一级菜单项的函数调用格式为

一级菜单项句柄 = uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)

建立子菜单项的函数调用格式为

子菜单项句柄 = uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,…)

在MATLAB还可以进行隐藏和显示标准菜单的操作,其常用的指令如下:

创建图形窗: h= Figure;
隐去标准菜单使用命令: set(h, ‘MenuBar’, ‘none’); set( gcf , ‘menubar’ , menubar) ;
恢复标准菜单使用命令: set( gcf, ‘menubar’, ‘figure’)。

建立一个菜单系统

screen = get(0, 'ScreenSize');
W = screen(3);H= screen(4);
hf = figure( 'Color',[1,1,1],'Position',[1,1,0.4*W,0.3* H],...
            'Name','菜单示例','NumberTitle', 'off', 'MenuBar', 'none');
hfile= uimenu(hf, 'label','&文件');
hhelp= uimenu(hf, 'label','&帮助');
uimenu(hfile, 'label', '&新建','callback', 'disp("New Item")'); 
uimenu(hfile, 'label', '&打开','callback', 'disp( "Open Item")');
hsave = uimenu(hfile, 'label', '&保存','Enable', 'off');
uimenu(hsave, 'label', 'Text file', 'callback', 'k1 = 0;k2 = 1;file01;');
uimenu( hsave, 'label', 'Graphics file', 'callback', 'k1= 1;k2= 0;file10;');
uimenu(hfile, 'label', '&保存到','callback', 'disp("Save As Item")');
uimenu(hfile, 'label', '&退出','separator', 'on', 'callback', 'close(hf)');
uimenu(hhelp, 'label', '关于','callback',['disp( "Help Item");','set(hsave, "Enable", "on")']);

结果显示:
在这里插入图片描述

2.菜单对象常用属性

菜单对象除具有Children(子对象)、Parent(父对象)、Tag(标签)、Type(类型)、UserData(用户数据)、Enable(使能)和Visible(可见性)等公共属性,还有一些常用的特殊属性,如回调(Callback)属性和菜单名(Label)。另外,用户菜单的外观有四个属性:Position(位置) ,Separator(分隔线) ,Checked(检录符)和ForeGroundColor( 前景颜色)。

下图中列出了MATLAB 4.2版本中的uimenu对象的属性及其属性值。注意:带
有“*”的属性是非文件式的,使用时需加小心;在括号“{ }”内的属性值是默认值。
在这里插入图片描述
在这里插入图片描述
例 Callback 属性示例,在图形窗上自制一个名为Callback 的“顶层莱单项”,当用鼠标单击该菜单项时,将产生一个带分格的封闭坐标轴。通过本例说明回调属性的运作机理、用户顶层菜单项的制作、uimenu属性的设置方法以及复杂字符串的构成方法和注意事项。

在MATLAB指令窗中运行以下程序可产生带分格的封闭坐标轴:

grid on, set(gca, 'box', 'on')

在MATLAB指令窗中用以下eval指令可产生与上面相同的界面:

eval( 'grid on, set(gca, "box","on")')
  • 方法一:
uimenu( 'label', 'Callback ','Callback', 'grid on, set(gca, 'box','on')% 直接连续表示法
  • 方法二:
uimenu( 'Label', 'Example',...
%方括号续行号表示法
		'Callback',['grid on,',...
		'set(gca, "box", "on");'])
  • 方法三:
MnE = 'Example';
%串变量法
GB=['grid on,','set(gca, "box", "on"), '];
uimenu( 'Label', MnE, 'Callback' ,GB)
  • 方法四:
Mgui.Label = 'Example';
%构架法
Mgui.Callback = ['grid on; ', 'set(gca, "box","on");'];
uimenu( Mgui)

例 Position 和Separator属性示例,设计要求:把用户菜单Option设置为顶层的第三菜单项;下拉菜单被两条分隔线分为三个菜单区;最下菜单项又由两个子菜单组成。

程序命令如下:

figure
h_menu= uimenu( 'label' ,'Option' ,'Position' ,3);
h_subl = uimenu(h_menu, 'label', 'grid on', 'callback', 'grid on');
h_sub2 = uimenu(h_menu, 'label' ,'grid off','callback' ,'grid off');
h_sub3= uimenu(h_menu, 'label', 'box on','callback', 'box on','separator', 'on' );
h_sub4= uimenu(h_menu, 'label', 'box off', 'callback' ,'box off' );
h_sub5 = uimenu(h_menu, 'label', '颜色', 'Separator', 'on' );
h_subsubl = uimenu(h_sub5, 'label', '红色' ,'ForeGroundColor' ,'r','callback','set(gcf, "Color", "r")');
h_subsub2 = uimenu(h_sub5, 'label', '复位','callback' ,'set(gcf, "Color", "W")');

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例 Checked 属性示例,当某菜单项被选中后,使该菜单项贴上检录符“√”。

程序命令如下:

figure
hm0=uimenu( 'label', 'option');
h1 = uimenu(hm0, 'label', '显示网格',...
			'callback',[...
					'grid on;',...
					'set(h1, "checked", "on");'....
					'set(h2, "checked", "off");'...
					]);
h2 = uimenu(hm0, 'label', '不显示网格',...
					'callback',[...
					'grid off;',...
					'set(h2, "checked", "on"),'...
					'set(h1, "checked", "off"),'...
]);

在这里插入图片描述
在这里插入图片描述
例 Enable 和Visible属性示例。

程序命令如下:

clc;clear;close all;
h_menu= uimenu( 'label' , 'option' );
h_sub1 = uimenu(h_menu, 'label', 'Axis on' );
h_sub2 = uimenu(h_menu, 'label' ,'Axis off','enable', 'off');
set(h_sub1, 'callback' ,['axis on;','set(h_sub1, "enable", "off");','set(h_sub2, "enable", "on")']);
set(h_sub2, 'callback' ,['axis off;','set(h_sub1, "enable", "on");','set(h_sub2, "enable","off")']);


在这里插入图片描述
在这里插入图片描述

1.2 上下文菜单的建立

用鼠标右键单击某对象时在屏幕上弹出的菜单叫作上下文菜单。这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系。在MATLAB中,可以使用uicontextmenu函数和图形对象的UIContextMenu属性来建立上下文菜单,具体步骤如下:

  • 利用uicontextmenu函数建立上下文菜单,格式为

he= uicontextmenu:其功能建立上下文菜单,并将句柄值赋给变量hc。

  • 利用uimenu函数为上下文菜单建立菜单项,格式为

uimenu(‘上下文菜单名’,属性名,属性…):其功能为创建的上下文菜单赋值,其 中属性名和属性值构成属性二元对。

  • 利用set函数将该上下文菜单和某图形对象联系起来。

例 绘制曲线 y=3e-0.6x*sin(2 pix),并建立一个与之相联系的上下文菜单,用以控制曲线的线型和曲线宽度。

程序命令如下:

clc;clear;close all;
x = 0:pi/100:2*pi;
y = 3*exp(-0.6*x).*sin(2*pi*x);
h1 = plot(x,y);
hc = uicontextmenu;                 %建立上下文菜单
hls= uimenu(hc, 'Label', '线型');     %建立莱单项
hlw= uimenu(hc, 'Label', '线宽');
uimenu(hls, 'Label', '虚线', 'callback', 'set(h1, "LineStyle",":");');
uimenu(hls, 'Label', '实线', 'callback', 'set(h1, "LineStyle","-");');
uimenu(hlw, 'Label', '加宽', 'callback', 'set(h1, "LineWidth",2);');
uimenu(hlw, 'Label', '变细', 'callback', 'set(h1, "LineWidth",0.5);');
set(h1, 'UIContextMenu' , hc);%将该上下文菜单和曲线对象联系起来

在这里插入图片描述
在这里插入图片描述

ul下拉菜单
11-15
五种实用简洁的系统头部下拉菜单框,使用ul列表实现。
Android Menu菜单制作源码.rar
07-10
Android 源代码,Menu菜单相关源码  menu.findItem(EXIT_ID);找到特定的MenuItem * MenuItem.setIcon.可以设置menu按钮的背景,点击第一个menu的第一个按钮执行的动作,点击第二个个menu的第一个按钮执行的动作.
菜单MenuUI控件---Day02 2014 06 04
weixin_33843947的博客
06-05 85
1)菜单Menu两种菜单:a.选项菜单optionMenu:触发方式:按menu键F2底部弹出作用范围activity,在创建的时候调用onCreateOptionsMenus实现方式:代码中实现场景:必要但又不常用的功能方式一:创建选项菜单onCreateOptionsMenus为选项菜单添加菜单Menu.add(0,,1,...
UIMenuController详解
qq_450351763的博客
08-07 283
UIMenuController的介绍 什么是UIMenuController? UIMenuController是UIKit里面的控件 UIMenuController的作用在开发中弹出的菜单栏 后面介绍了菜单栏显示中文的设置 有哪些控件是自带UIMenuController菜单栏效果的呢? UITextField
UI控件之菜单(Menu)
MakeYourChance的专栏
06-28 4948
(一)概述 本章给大家带来的是Android中的Menu(菜单),而在Android中的菜单有如下几种:OptionMenu:选项菜单,android中最常见的菜单,通过Menu键来调用SubMenu:子菜单,android中点击子菜单将弹出一个显示子菜单项的悬浮框, 子菜单不支持嵌套,即不能包括其他子菜单ContextMenu:上下文菜单,通过长按某个视图组件后出现的菜单,该组件需注册上下文菜单
【Android】- UI常用组件 -Menu菜单
case_break的博客
04-25 400
【Android】- UI常用组件 -Menu菜单一、选项菜单OptionMenu1.重要属性2.一些特点3.设置方法 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、选项菜单OptionMenu1.重要属性2.一些特点3.设置方法 一、选项菜单OptionMenu 1.重要属性 2.一些特点 3.设置方法 ①在Android模式的res目录下新建一个Android Resource Directory,Resource Type 选择为menu。新建完后res目录下会有一
watchOS UI的圆形选择菜单-Swift开发
05-27
用户界面是Apple旧的Contact应用程序的副本,该应用程序是为watchOS的wat环形冠选择器的早期版本设计的,CircularCrownSelector是通过Digital Crown控制的选择菜单。 用户界面是Apple旧的Contact应用程序的副本,该...
MATLAB对话框与菜单设计实验源码及实验报告
最新发布
01-14
本资源附有MATLAB源码文件以及实验...对于figure、uimenu及回调函数等常用图形界面的使用有了初步的认知,在学习与使用过程中对于如何使用一些figure的对象属性也有了了解,对于图形界面的对话框与菜单设计更为熟练。
Android_UI设计指南.pdf
04-15
四、菜单设计指南 菜单保存有一系列的隐藏的指令(用户操作),并通过按钮键或者手势访问。菜单命令 执行操作和导航到您的应用程序或其他应用程序的其他部分提供了一种操作。菜单做为放置 功能和导航之一有效的释放...
macOS教程之菜单使用CommandMenu源码
11-25
macOS 开发教程之如何设置菜单工具栏? 命令在不同平台上以不同方式实现。主菜单使用可用的命令菜单和组在macOS上组织其主菜单项。每个菜单均表示为顶级菜单菜单。每个命令组在一个顶层菜单中都有一组相应的菜单项...
前端框架iviewui使用示例之menu
隔壁老王的博客
11-23 7635
  官方文档对非模板模式(非 template/render 模式)语焉不详,一个简单的例子调了好长时间,贴一下代码,帮助一下同道中人。   调试代码,注意修改js、css的路径。官方网站可以下载。 [code="html"] iview菜单示例 ...
ul,li控件的封装(menu,list列表)
我的鱼塘
09-17 881
控件本身没有什么技术含量。只是一个简单的封装。 新项目中前端开发人员专门负责编写html代码。整体看过代码,有很多地方前端人员都使用了ul、li的布局。像Menu、图片列表、商户列表也都是ul、li的形式。所以就写这了个通用的控件。 主要的思路 尽量减少后端开发人员HTML代码的拼接过程,重点关心数据的读取。 从HtmlGenericControl继承,这样可以利用很多现有...
C# Winform编程自学笔记(四)菜单菜单组件
Cambridge26的博客
04-06 2225
因为毕业设计要用到Winform编程,所以计划用一个月的时间学一下,这篇笔记里包含了上机实操和代码理论两个部分,欢迎前来交流~ 本篇主要内容:菜单菜单组件,第一单元作业
五.菜单组件
SSZX0206的博客
08-08 525
1.常见的菜单组件 菜单组件名称 功能 MenuBar 菜单条,菜单容器 Menu 菜单项的容器,也是Menultem的子类 PopupMenu 上下菜单组件 Menultem 菜单项组件 CheckboxMenultem 复选框菜单项组件 菜单组件体系图: 2.菜单组件使用: ①.准备菜单项组件,这些组件可以是MenuItem及其子类 ②.准备菜单组件Menu或者PopupMenu(右键...
java gui设计菜单组件_java-----------GUI菜单设计
weixin_39750195的博客
02-28 444
一、制作一个可用的菜单系统,一般需要经过下面几个步骤Step 1创建一个JMenuBar对象并将其放置在一个JFrame中Step 2创建JMenu对象Step 3创建JMenuItem对象并将其添加到JMenu对象中Step 4把JMenu对象添加到JMenuBar中上面这几步主要是创建菜单的结构,如果要使用菜单所指出的功能,则必须要为菜单项注册监听者,并在监听者提供的事件处 ...
学习matlab GUI编程的一点点所得
niumengxy的博客
03-22 7525
1.我应该在哪里加我的代码?             MATLAB自动为你做的工作:对控件执行默认操作时,matlab自动执行按钮的callback下的代码。       比如按钮,就是单击按钮一下。所以对于编程的新人来说,只用在相应函数下,添加自己期望执行的操作代码就可以了。比如说希望鼠标在控件上单击时执行某写代码,那将代码添加在ButtonDownFcn下就好。希望在控件销毁(比如说某窗口
matlab menu命令,Matlab基本函数-menu函数
weixin_36382155的博客
03-24 2830
1、menu函数:产生菜单2、用法说明m = menu('title','n1','n2',......,'nn') 函数显示以字符串变量‘title’为标题的菜单,选项为字符串变量:‘n1’,......,返回所输入的值到m3、举例说明>> m = menu('登录注册界面','登录','注册','取消','返回')m =1>> m = menu('登录注册界面','登...
Matlab基本函数-menu函数
牛栏山矿泉水
12-22 2028
1、menu函数:产生菜单 2、用法说明 m = menu('title','n1','n2',......,'nn') 函数显示以字符串变量‘title’为标题的菜单,选项为字符串变量:‘n1’,......,返回所输入的值到m 3、举例说明 >> m = menu('登录注册界面','登录','注册','取消','返回') m = 1 >&g...
iOS UIMenuController 用法
yizhiliulangdemiao的博客
01-17 985
先看效果如下图: UIMenuController 的用法和UIAlertViewController 的用法类似,它可以添加的UILabel 、UIImageView、UIButton等上面。 用法很简单代码如下: 此处是添加到button上的,位置放在了button的中间,如果要加在label上,可以给lable添加一个手势。 self.tmpBtn = [UIButton b...
设计一个UI界面菜单,树节点等以及业务逻辑可以根据配置文件进行配置的代码
03-30
通过将`Menu`类的实例分配给`root.config(menu=menu.menu)`,可以将菜单添加到UI的顶部。树节点是使用`tk.Treeview`创建的,并使用`build_tree_nodes`方法填充。在此示例中,树节点仅显示节点名称,但可以根据需求...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • matlab编写关于离散的傅里叶变换 11646
  • 利用遗传算法求解函数极值 9493
  • 遗传算法原理介绍 7429
  • 切比雪夫 II 型滤波器设计 7119
  • matlab非线性规划 6641

分类专栏

  • python 12篇
  • matlab 45篇
  • matlab非线性规划 2篇
  • 遗传算法 8篇
  • 量子通信 3篇
  • QKD 3篇
  • matlab信号处理 5篇
  • IIR滤波器设计 5篇
  • GUI程序设计 15篇
  • Excel 存入数据 1篇
  • 无约束一维极值 7篇
  • matlab线性规划 1篇
  • 信号与系统的分析基础 6篇
  • 信号的变换 2篇
  • Z变换 1篇
  • 离散傅里叶变换 1篇
  • 图像处理 1篇
  • veirlog语法 3篇
  • 设计实例 2篇
  • RISC CPU 1篇
  • 有限状态机和可综风格的Verilog HDL 5篇
  • 基本运算逻辑和它们的Verilog HDL模型 2篇

最新评论

  • 无约束一维极值——斐波那契法

    2401_83391393: 请问在MATLAB中是把这几段代码复制粘贴顺序是什么呢,怎么运行不出来呢表情包

  • 无约束一维极值——抛物线法

    2301_81487463: 作者大大在吗

  • 基本运算逻辑和它们的Verilog HDL 模型

    yyds14: 我想问为什么M的高三位为0

  • GUI控件——静态文本,可编辑文本框

    去码头整点薯条481: 怎么设置多行可编辑文本框

  • 基于MATLAB实现进制数转换

    m0_73945109: 左侧索引与右侧大小不兼容怎么解决

大家在看

  • 面试题:如何设计一个秒杀系统?
  • linux shell实现统计/var/log目录文件
  • SSM+高校学生宿舍管理系统-计算机毕设定制-附源码 051443 575
  • springboot+vue.js+mysql+基于VUE框架的商城综合项目自动化系统的实现-计算机毕设定制-附源码 051018 539
  • 计算机网络知识点(四)

最新文章

  • Python3 面向对象
  • Python3 迭代器与生成器
  • 字符串相关知识
2022年6篇
2021年54篇
2020年1篇
2019年15篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

哆哆女性网易氏起名连发生成工具31省份养老金已全部上涨公司起名带云字的全国退票1.15亿张轻慢佳人锦衣之下七七免费观看苏映雪楚奕寒御致茗方姓方起名大全女孩李昌起名乐都特官网2021宝宝起名宝宝起名 免费店铺起起名测试打分熊出没之熊大快跑入党积极分子考察意见空气能公司起名芬芳馥郁什么起名带财三藏 起名测试姓屈的男孩起名字甜品店需要起名神级英雄水品牌起名mother是什么意思新超越极限2.44植物大战僵尸1管道公司起名岳青婴淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化