《Matlab GUI 菜单和工具栏常用操作.docx》由会员分享,可在线阅读,更多相关《Matlab GUI 菜单和工具栏常用操作.docx(6页珍藏版)》请在三一办公上搜索。
1、Matlab GUI 菜单和工具栏常用操作Matlab GUI 常用操作 菜单 1. 编辑菜单 打开GUIDE,选择工具栏上面的菜单编辑按钮 2. 添加菜单回调函数 菜单编辑完成保存后,在fig对应的m文件中会自动生成菜单的回调函数声明 例如菜单tag名为menuFilePrint,则对应的callback函数为: function menuFilePrint_Callback(hObject, eventdata, handles) 可以在该函数内添加代码实现功能。 3. 菜单项访问 获取菜单句柄 在matlab的函数中要对某个菜单进行访问,必须获得该菜单的句柄。 如果是在菜单的回调函数里面
2、,hObject就是该菜单的句柄; 1 如果是在其他的函数里面要获得某一菜单的句柄,比如选中工具栏上的ZoomIn按钮,按钮处于被按下状态,同时要设置对应菜单项view-Zoom-Zoom In 为选中状态,如下图: 这里要在按钮“ZoomIn”的callback函数里面实现对菜单menuViewZoomIn的状态设置。首先得获得菜单的句柄: % first we must get the handle of menuZoomIn hFigChildren = allchild(gcf); % menuView handle hMenuView = findobj(hFigChildren,T
3、ag,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,
4、 Checked, on); end 2 工具栏 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,. defaultuic
5、ontrolbackgroundcolor); 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
6、, hOpenMenuitemCallback); 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 3 % get all children hChildren = allchild(hToolbar)
7、; 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
8、) % 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
9、hChildren = allchild(tbh); if isempty(hChildren), return, end % delete data cursor button hDeleted = findobj(hChildren,Tag,Exploration.DataCursor); delete(hDeleted); 4 8. 设置figure工具栏按钮的状态 % get toolbar handle hToolbar = findall(gcf,Type,uitoolbar); if isempty(hToolbar), return, end % get all childre
10、n 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 5