拖更了很久,人太颓废了。
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对象使用方法即可。