您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Matlab GUI的菜单和工具栏常用操作
1MatlabGUI常用操作菜单1.编辑菜单打开GUIDE,选择工具栏上面的菜单编辑按钮2.添加菜单回调函数(callback)菜单编辑完成保存后,在fig对应的m文件中会自动生成菜单的回调函数声明例如菜单tag名为menuFilePrint,则对应的callback函数为:functionmenuFilePrint_Callback(hObject,eventdata,handles)可以在该函数内添加代码实现功能。3.菜单项访问获取菜单句柄在matlab的函数中要对某个菜单进行访问,必须获得该菜单的句柄。如果是在菜单的回调函数里面,hObject就是该菜单的句柄;2如果是在其他的函数里面要获得某一菜单的句柄,比如选中工具栏上的ZoomIn按钮,按钮处于被按下状态,同时要设置对应菜单项view-Zoom-ZoomIn为选中状态,如下图:这里要在按钮“ZoomIn”的callback函数里面实现对菜单menuViewZoomIn的状态设置。首先得获得菜单的句柄:%firstwemustgetthehandleofmenuZoomInhFigChildren=allchild(gcf);%menuViewhandlehMenuView=findobj(hFigChildren,'Tag','menuView');hvc=allchild(hMenuView);%menuViewZoomhViewZoom=findobj(hvc,'Tag','menuViewZoom');hvzc=allchild(hViewZoom);%menuZoomInhandlehZoomIn=findobj(hvzc,'Tag','menuZoomIn');获取设置菜单状态得到菜单的句柄后就可以得到菜单当前的状态了:ifstrcmp(get(hZoomIn,'Checked'),'on')set(hZoomIn,'Checked','off');elseset(hZoomIn,'Checked','on');end3工具栏1.不显示工具栏1)GUIDE开发界面在对应的m文件中找到functionMain_OpeningFcn(hObject,eventdata,handles,varargin)在该函数里面添加:set(hObject,'Toolbar','none');2)M文件开发hMainFigure=figure(...%ThemainGUIfigure'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(...%Opentoolbarbutton'Parent',hToolbar,...'TooltipString','NewFile',...'CData',imread('New.bmp'));'HandleVisibility','callback',...'ClickedCallback',@hOpenMenuitemCallback);4.获取工具栏句柄%gettoolbarhandlehToolbar=findall(gcf,'Type','uitoolbar');ifisempty(hToolbar),return,end5.获取figure工具栏按钮的tag值%gettoolbarhandlehToolbar=findall(gcf,'Type','uitoolbar');ifisempty(hToolbar),return,end4%getallchildrenhChildren=allchild(hToolbar);ifisempty(hChildren),return,endhTags=get(hChildren,‘Tag’);hTags保存了工具栏所有按钮的tag值:6.获取设置figure工具栏按钮的callback函数%resetcallbackfunctionforZoominhZoomIn=findobj(hChildren,'Tag','Exploration.ZoomIn');set(hZoomIn,'ClickedCallback',@tbZoomIn_Callback);functiontbZoomIn_Callback(hObject,eventdata)%hObjecthandletotbZoomIn(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB7.删除figure工具栏按钮%setfiguretoolbarfirstset(hObject,'Toolbar','figure');%gettoolbarhandletbh=findall(hObject,'Type','uitoolbar');ifisempty(tbh),return,end%toolbarbuttonscollectionhChildren=allchild(tbh);ifisempty(hChildren),return,end%deletedatacursorbuttonhDeleted=findobj(hChildren,'Tag','Exploration.DataCursor');delete(hDeleted);58.设置figure工具栏按钮的状态%gettoolbarhandlehToolbar=findall(gcf,'Type','uitoolbar');ifisempty(hToolbar),return,end%getallchildrenhChildren=allchild(hToolbar);ifisempty(hChildren),return,endhTags=get(hChildren,'Tag');%findZoomInbuttonhb=findobj(hChildren,'Tag','Exploration.ZoomIn');ifisempty(hb),return,end%setstateifstrcmp(get(hObject,'Checked'),'on')set(hObject,'Checked','off');set(hb,'State','off');elseset(hObject,'Checked','on');set(hb,'State','on');end
本文标题:Matlab GUI的菜单和工具栏常用操作
链接地址:https://www.777doc.com/doc-5839119 .html