Matlab GUI 常用操作
1.编辑菜单
打开GUIDE,选择工具栏上面的菜单编辑按钮
2.添加菜单回调函数(callback)
菜单编辑完成保存后,在fig对应的m文件中会自动生成菜单的回调函数声明
例如菜单tag名为menuFilePrint,则对应的callback函数为:
function menuFilePrint_Callback(hObject, eventdata, handles)
可以在该函数内添加代码实现功能。
3.菜单项访问
获取菜单句柄
在matlab的函数中要对某个菜单进行访问,必须获得该菜单的句柄。
如果是在菜单的回调函数里面,hObject就是该菜单的句柄;
如果是在其他的函数里面要获得某一菜单的句柄,比如选中工具栏上的ZoomIn按钮,按钮处于被按下状态,同时要设置对应菜单项view->Zoom-Zoom In 为选中状态,如下图:
这里要在按钮“ZoomIn”的callback函数里面实现对菜单menuViewZoomIn的状态设置。首先得获得菜单的句柄:
% first we must get the handle of menuZoomIn
hFigChildren = allchild(gcf);
% menuView handle
hMenuView = findobj(hFigChildren,'Tag','menuView'钢琴森林);
hvc = allchild(hMenuView);
% menuViewZoom
hViewZoom = findobj(hvc,'Tag','menuViewZoom');
hvzc = allchild(hViewZoom);
%menuZoomIn handle
hZoomIn = findobj(hvzc,'Tag', 'menuZoomIn');
谁说女子不如男∙获取设置菜单状态
得到菜单的句柄后就可以得到菜单当前的状态了:
if strcmp(get(hZoomIn, 'Checked'),'on')
    set(hZoomIn, 'Checked', 'off');
else
set(hZoomIn, 'Checked', 'on');
end
工具栏
1.不显示工具栏
1)GUIDE开发界面
在对应的m文件中到
function Main_OpeningFcn(hObject, eventdata, handles, varargin)陈奕迅 无人之境
在该函数里面添加:
set(hObject,'Toolbar','none')
2)M文件开发
hMainFigure = figure(...      % The main GUI figure
                    'MenuBar','none', ...
                    'Toolbar','none', ...
涟漪歌词                    'HandleVisibility','callback', ...
                    'Color', get(0,...
                    'defaultuicontrolbackgroundcolor'));
2.显示“Figure”工具栏
set(hObject,'Toolbar','figure');
3.添加自定义工具栏
set(hObject,'Toolbar','none')
hToolbar = uitoolbar(hObject);
hNewPushtool  =  uipushtool(...  % Open toolbar button
                  'Parent',hToolbar,...
                  'TooltipString','New File',...
                  'CData',imread('New.bmp'));
                  'HandleVisibility','callback', ...
                  'ClickedCallback', @hOpenMenuitemCallback);金鹰女神2020目前排名
4.获取工具栏句柄
% get toolbar handle
hToolbar = findall(gcf,'Type','uitoolbar');
if isempty(hToolbar), return, end
5.获取figure工具栏按钮的tag值
% get toolbar handle
hToolbar = findall(gcf,'Type','uitoolbar');
if isempty(hToolbar), return, end
   
% get all children
hChildren = allchild(hToolbar);
if isempty(hChildren), return,end
hTags = get(hChildren, Tag);
hTags保存了工具栏所有按钮的tag值:
6.获取设置figure工具栏按钮的callback函数
%reset callback function for "Zoom in"
hZoomIn = findobj(hChildren,'Tag','Exploration.ZoomIn');
set(hZoomIn,'ClickedCallback',@tbZoomIn_Callback);
function tbZoomIn_Callback(hObject, eventdata)
% hObject    handle to tbZoomIn (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
7.删除figure工具栏按钮
% set figure toolbar first
set(hObject,'Toolbar','figure');
% get toolbar handle
tbh = findall(hObject,'Type','uitoolbar');
if isempty(tbh), return, end
% toolbar buttons collection
hChildren = allchild(tbh);
if isempty(hChildren), return, end
% delete data cursor button
hDeleted = findobj(hChildren,'Tag','Exploration.DataCursor');
delete(hDeleted);
8.设置figure工具栏按钮的状态
% get toolbar handle
hToolbar = findall(gcf,'Type','uitoolbar');
if isempty(hToolbar), return, end
   
祖峰个人资料% get all children
hChildren = allchild(hToolbar);
if isempty(hChildren), return,end
hTags = get(hChildren, 'Tag');
% find "Zoom In" button
hb = findobj(hChildren,'Tag','Exploration.ZoomIn');
if isempty(hb),return, end
% set state
if strcmp(get(hObject, 'Checked'),'on')
    set(hObject, 'Checked', 'off');
    set(hb,'State', 'off');
else
    set(hObject, 'Checked', 'on');
    set(hb,'State', 'on');
end