MATLAB GUI自定义菜单栏uimenu,右键菜单uicontextmenu,下拉菜单popupmenu

拖更了很久,人太颓废了。

MATLAB 自定义菜单栏

uimenu
语法:
m = uimenu
m = uimenu(Name,Value)
m = uimenu(parent)
m = uimenu(parent,Name,Value)
在这里插入图片描述

a = figure;
set(a,'toolbar','none'); % 把toolbar去掉
m = uimenu(a,'Text','Opts'); % 添加一个Opts
mm = uimenu(m,'Text','Selection'); %添加子菜单

在这里插入图片描述
如果想完全自定义,即去掉标准的figure menubar,用如下代码:

a = figure;
set(a,'toolbar','none','menubar','none'); % 把 toolbar 和 menubar
m = uimenu(a,'Text','Opts'); % 添加一个Opts
mm = uimenu(m,'Text','Selection'); %添加子菜单

在这里插入图片描述
在这里插入图片描述 在这里插入图片描述
这里可以看到二者的区别。


介绍一下menu的有关属性,较为常用的有 Tooltip,Accelerateor,MenuSelectedFcn,checked 等。

function importmenu
fig = uifigure;
m = uimenu(fig,'Text','&Import');
 
mitem = uimenu(m,'Text','&Text File','Tooltip','??');
mitem.Accelerator = 'T';  % 快捷键
mitem.Checked = 'on';  %打钩
mitem.MenuSelectedFcn = @MenuSelected; % 回调函数
 mitem.Tooltip = '???';  % 注释,鼠标停顿显示
    function MenuSelected(src,event)
        file = uigetfile('*.txt');
    end
 
end

在这里插入图片描述
更多属性查看

MATLAB 右键菜单

uicontextmenu
在这里插入图片描述

    a = figure;
    GUI.bMenu_=uicontextmenu;
    % 用于右键菜单
   
    m1 = uimenu(GUI.bMenu_,'Label','Time');
    m2 = uimenu(GUI.bMenu_,'Label','Viewed');
    m3 = uimenu(GUI.bMenu_,'Label','edit','callback',@edit_title);
    m4 = uimenu(GUI.bMenu_,'Label','copy ','callback',@copy_site);
    m5 = uimenu(GUI.bMenu_,'Label','save as','callback',@Save_all);
    m11= uimenu(m1,'label','up','callback',@time_sortup);
    m12=uimenu(m1,'label','down','callback',@time_sortdown);
    m21= uimenu(m2,'label','up','callback',@view_sortup);
    m22=uimenu(m2,'label','down','callback',@view_sortdown); 
    set(a,'uicontextmenu',GUI.bMenu_); % @后面的都是回调函数,此处未定义

此处的GUI.bMenu_等也是menu对象,操作与上述相同

MATLAB 下拉菜单

在这里插入图片描述

GUI.face_rec=figure('units','pixel','position',[400 150 720 500],...
    'numbertitle','off','name','Face Recognition','menubar','none',...
    'WindowButtonDownFcn',@Activiate);
GUI.Mode=uicontrol('parent',GUI.face_rec,'style','popupmenu','units',...
    'pixel','string',{'颜值PK';'颜值评分'},'position',[580 420 90 30],'BackgroundColor',...
     'white','Callback',@Mode_choose); % 注意此处的uicontrol style参数为popupmenu

其中,string代表的是选项,用元胞数组分割,每一个代表着一行。
具体判断选择了哪一个可以使用回调函数,查看menu的 value,比如说:

global GUI
GUI.face_rec=figure('units','pixel','position',[400 150 720 500],...
    'numbertitle','off','name','Face Recognition','menubar','none',...
    'WindowButtonDownFcn',@Activiate);
GUI.Mode=uicontrol('parent',GUI.face_rec,'style','popupmenu','units',...
    'pixel','string',{'颜值PK';'颜值评分'},'position',[580 420 90 30],'BackgroundColor',...
     'white','Callback',@Mode_choose); % 注意此处的uicontrol style参数为popupmenu
    function Mode_choose(~,~)
    global  GUI
    get(GUI.Mode,'value')
    end

在这里插入图片描述
属性设置按照menu对象使用方法即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆拾伍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值