Matlab GUI 菜单和工具栏常用操作
- 格式:doc
- 大小:80.00 KB
- 文档页数:5
今天由于要帮一朋友用matlab处理一幅图片,处理图片的要求其实很简单,就是把图片加载进matlab中,然后显示出想要的某一列的趋势图来。
如果用代码写的话,程序如下:x=imread(‘文件路径\*.jpg’);figure(1);plot(x(:,100)); %假如要显示的是图像的第100列的趋势图显示效果如下图所示:虽然用M文件写两句很简单,不过带着感情,追求更好是我们永恒的动力,首先用M文件时候人机界面不友好,的看很多的代码,尤其对不太熟悉M编程的的人而言即使很简单也看着比较郁闷,因此我们接下来用matlab中的GUI来完成这个简单的例子,当然编程起来比这个复杂多,但是对使用者而言确很简单清楚。
这个就如同VC中的MFC和WINDOWSFORMS一样。
做成的都是人机交互界面。
不废话了,看例子。
首先打开MATLAB,要新建一个MATLAB GUI 程序有三种方法,这里我直接在命令窗口里输入guide,新建一个空的GUI程序,选择如下图:新建好的GUI编程界面如下图,上面无非就是菜单,工具,还有编程用到的控件,还有编程的用户窗口。
这个和LABVIEW有点像。
不过LABVIEW的前面板都是用控件拖出来的,后面板也是拖控件画出来的。
而GUI的显示界面是拖控件画出来的,其中一些属性参数要设置下,而后面的执行这些控件的都是写的M函数,即后面板都是要写代码的,这个比LABVIEW单纯的画程序要难,当然灵活性也大,不过个人感觉没一个简单的,都难呀。
至于上面控件的意思,怎么拖请自己看吧,若学过MFC或者WINDOWSFORMS的人就会很容易理解的,这之间是太像了,呵呵。
我们的目的是显示图片,并且显示需要的某一列的趋势图。
为了使人机交互更好点,我们可以使加载图片时和我们选择打开文件夹那样完成,即自己选择路径,而不用每次在M文件里改路径。
还有我们要求在加载图片完成时立马显示出这幅图片的大小信息,即多少行,多少列。
去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录。
从简单的例子说起吧。
创建Matlab GUI界面通常有两种方式:1,使用 .m 文件直接动态添加控件2. 使用GUIDE 快速的生成GUI界面显然第二种可视化编辑方法算更适合写大型程序。
一:创建GUI1.在 .m文件中动态添加例如h_main=figure(‘name’,‘a demo of gui design’,‘menubar’,‘none’,…'numbertitle','off','position',[100 100 300 100]);h_edit=uicontrol('style','edit','backgroundcolor',[1 1 1],'position',[20 20 50 20],...'tag','myedit','string','1','horizontalalignment','left');h_but1=uicontrol('style','pushbutton','position',[20 50 50 20],'string','INC',...'callback',['v=eval(get(h_edit,''string''));',...'set(h_edit,''string'',int2str(v+1));']);h_but2=uicontrol('style','pushbutton','position',[80 50 50 20],'string','DEC',...'callback',['v=eval(get(h_edit,''string''));','set(h_edit,''string'',int2str(v-1));']);2.使用GUIDE帮助创建GUI在Command 里面输入GUIDE 或者从菜单里面,或者从快捷按钮均可进入GUIDE新建并且保存后,会生成相应的fig文件和m文件,在Layout编辑视图,可以使用如下工具:Layout Editor:布局编辑器;Alignment Tool:对齐工具;Property Inspector:对象属性观察器;Object Browser:对象浏览器;Menu Editor:菜单编辑器。
MATLAB实用教程GUIMATLAB是一种功能强大的数学软件,广泛用于科学和工程领域的数据分析、可视化、建模和仿真。
在MATLAB中,GUI(Graphical User Interface,图形用户界面)是一种用于创建交互式应用程序的工具,可以使用户通过图形化界面来操作和控制程序。
本教程将介绍如何使用MATLAB创建GUI应用程序,包括创建各种控件(按钮、文本框、下拉菜单等)、设计布局、添加回调函数等。
通过学习本教程,您将了解如何利用MATLAB的强大功能和易用的GUI设计工具来创建自己的交互式应用程序。
1.创建GUI应用程序要创建一个GUI应用程序,首先需要打开MATLAB并选择新建GUI应用程序。
在弹出的界面中,可以选择创建一个新的Figure或Panel,然后可以在面板上添加各种控件。
可以通过拖动和放置控件来设计界面布局,然后可以对控件进行自定义设置,比如修改文本内容、颜色、大小等。
2.添加控件MATLAB提供了各种控件,用于实现不同的功能。
常见的控件包括按钮、文本框、下拉菜单、滑块等。
可以通过在界面上拖动和放置这些控件来创建自己的GUI应用程序。
在添加控件时,可以设置控件的属性,比如位置、大小、颜色、文本内容等。
3.设计布局设计布局是创建GUI应用程序的重要部分。
可以通过调整控件的位置、大小和对齐方式来设计一个美观的界面布局。
MATLAB提供了多种布局管理器,比如Grid布局、Box布局、GridBag布局等,可以根据需要选择合适的布局方式来设计界面。
4.编写回调函数回调函数是GUI应用程序的关键部分,用于响应用户的操作。
可以为每个控件添加回调函数,当用户操作控件时,回调函数将被触发。
可以在回调函数中实现各种功能,比如计算结果、数据处理、图形绘制等。
通过编写回调函数,可以实现程序的交互性和实用性。
5.运行应用程序创建GUI应用程序后,可以点击“运行”按钮来运行应用程序。
在运行过程中,可以与界面上的控件进行交互,触发回调函数并实现相应功能。
如果没有图形用户界面(GUI)我们只能从命令行(Command Window)中调用相关程序,这相对比较繁琐,并且不是所有用户都是这个能力。
就好比计算机的 DOS 系统,在有windows的情况下,您会选择DOS吗?当然我们也不排除骨灰级的人物!在本节教程我们主要针对没有G UI 创建和使用经历的网友,但是必要的M ATLAB基础知识是需要的。
在教程中我们将创建一个简单的GUI程序,它执行两个数的加法运行,然后显示其运算结果。
一、打开和创建GUI界面1、首先打开Matlab,在Command Window中输入guide回车2、此时打开GUI编辑器GUIDE(GUI Developer的缩写)2.1 界面上有两个标签也“Creat New GUI”和“Open Existing GUI”如果创建新的GUI此时我们选择第一个标签页,但如果打开其它已经存在的GUI 就点击第二个标签吧2.2 这里我们选择第一个标签下的“Blank GUI”(空白 GUI),下面还有几个系统GUI模版,你可以根据需要选择其它的。
2.3 点击“OK”我们正式进入GUIDE界面,呵呵,是不是感觉似曾相识3、添加你需要的控件到figure中在添加控件之前,您最好对您的GUI界面布局已经有一定的构思了,否则盲目性太大了不利于您的编程。
下面是我们构思的布局。
二、添加控件和设置属性在正式讲解之前,我们先讲解下GUI中的鼠标基本操作(a) 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标(b) 在右边的figure中按住左键,画出您的控件,于是空间就在figure上(c) 你可以用鼠标拖拽figure上所有控件,来改变他们的位置(d) 在控件上双击鼠标左键(右击是快捷菜单)可打开控件属性面板1、从上面的布局构思,我们知道本GUI需要以下控件:三个“编辑文本框”(Edit Text):三个“静态文本框”(Static Text):一个“确定按钮”(Pushbutton)按照上面介绍的鼠标操作方法,将这6个控件拖到右边的figure中,如下图所示2、接下来就是编辑这些控件的属性好,下面从Static Text开始吧,双击其中一个“静态文本块”,将跳出该控件的“属性查看器”(Property Inspector)GUI控件的几个常用属性说明如下:position:指示空间在figure中的位置font**:字体相关属性string:相当如VB中的caption,就是显示在控件上的文字tag:控件的唯一标识符,相当于ID,我们需要tag来指定某一个空间2.1 在这里我们修改它的“string”属性为“+”2.2 同理修改它的“fontsize”属性为20在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。
MATLABGUI的使用经验与技巧
一、Matlab介绍
Matlab是一款由MathWorks公司推出的矩阵/数组工具软件,具有高
效的数学计算和可视化功能。
可以为科学计算和工程建模提供便捷的处理
方式,是一款多功能软件。
Matlab GUI(图形用户界面)是一种软件界面,使用户能够即时地与Matlab应用程序进行交互。
二、Matlab GUI的使用经验及技巧
1、UI组件:
Matlab GUI的UI组件是构建GUI的基础,主要有按钮、复选框、单
选框、输入框、列表框等,可以根据实际需求添加不同的UI组件,并且
可以定义UI组件的属性,如按钮的背景色、位置等。
2、回调函数:
Matlab GUI的回调函数是比较重要的一个组成部分,当用户激活一
些UI组件时,会触发回调函数,实现用户与程序的交互,从而实现各种
操作和功能。
回调函数中可以定义各种语句,调用函数,甚至可以执行程
序段,实现复杂功能。
3、数据处理:
Matlab GUI通过一定的语句,即可实现用户的数据输入、输出、处
理及其他操作,从而达到一定的功能要求。
可以在GUI中运行matlab程序,处理复杂的数据,这需要熟练掌握Matlab语言,以及其他数据处理
技术,例如正则表达式等。
4、可视化:
可视化是GUI最重要的功能之一,可以使用各种图表或实时显示数据,让用户更直观地查看和理解数据。
MATLAB基本操作及环境设置1.MATLAB的基本操作:-启动MATLAB:在计算机上安装MATLAB软件后,可以从开始菜单中或桌面图标启动MATLAB。
-MATLAB命令窗口:启动MATLAB后,可以看到一个命令窗口。
在命令窗口中,可以输入MATLAB命令,并执行它们。
- 基本算术操作:MATLAB可以进行基本的算术操作,如加减乘除。
例如,输入"2+3",然后按Enter键,MATLAB将计算并显示结果。
- 变量:在MATLAB中,可以定义变量,并将值赋给它们。
例如,输入"x = 5",然后按Enter键,MATLAB将创建变量x,并将值设为5 - 矩阵操作:MATLAB是以矩阵为基础的语言。
可以使用MATLAB的矩阵操作函数创建、修改和操作矩阵。
例如,可以使用"zeros"函数创建由0组成的矩阵,使用"eye"函数创建单位矩阵,以及使用"inv"函数计算矩阵的逆矩阵。
2.MATLAB的环境设置:- 工作目录:工作目录是MATLAB文件的位置。
可以使用"cd"命令更改工作目录。
可以使用"pwd"命令查看当前工作目录。
- 文件管理:MATLAB提供了一些函数来管理和操作文件。
可以使用"dir"函数列出当前目录中的文件和文件夹,使用"mkdir"函数创建新文件夹,使用"delete"函数删除文件等。
-图形界面:MATLAB还提供了一个图形用户界面(GUI),可以通过点击菜单和按钮来执行操作。
GUI提供了更直观和交互式的方式来使用MATLAB。
- 图形绘制:MATLAB具有强大的图形绘制功能。
可以使用"plot"函数绘制二维曲线,使用"mesh"函数绘制三维曲面等。
MATLAB图形界面的使用方法MATLAB(全称Matrix Laboratory)是一种用于科学计算和数据可视化的强大的数学软件工具。
它不仅具备强大的数值计算和分析能力,还集成了一套友好的图形界面,使得使用者可以直观地进行数据处理和可视化。
本文将介绍MATLAB图形界面的使用方法,帮助读者更好地掌握这个工具。
一、MATLAB的基本界面介绍在启动MATLAB后,会看到它的主界面,这个界面一般分为几个区域,如图1所示。
【插入图1:MATLAB主界面示意图】图1:MATLAB主界面示意图1. 菜单栏:位于主界面的上方,提供了各种操作和功能的选项,包括文件操作、编辑、运行、调试等等。
2. 工具栏:位于菜单栏下方,提供了一些常用的快捷按钮,如新建、打开、保存等。
3. 编辑器区域:位于主界面的左侧,用于编写和编辑MATLAB代码。
在这个区域,可以编写自己的函数、脚本或命令。
4. 工作区:位于主界面的右上角,用于显示当前MATLAB的工作空间。
在这个区域,可以查看已经定义的变量、函数等。
5. 命令窗口:位于主界面的右下角,是与MATLAB交互的主要途径。
我们可以在命令窗口中直接输入MATLAB命令,然后按回车键执行。
6. 图形窗口:位于主界面的中下方,用于显示MATLAB生成的图形和图像。
在这个窗口中,我们可以进行数据的可视化呈现。
二、图像的绘制MATLAB提供了丰富的绘图函数,可以绘制各种图形,如线图、柱状图、散点图等等。
下面以绘制折线图为例,介绍MATLAB的图形绘制方法。
1. 准备数据在绘制图形之前,首先需要准备好要绘制的数据。
可以通过直接输入数据,或者从文件中读取数据。
数据一般以矩阵或向量的形式存储,例如:x = 1:10;y = [3, 5, 6, 9, 11, 14, 18, 20, 23, 25];2. 绘制图形在命令窗口中输入以下代码,即可生成折线图:plot(x, y);xlabel('X轴');ylabel('Y轴');title('折线图');上述代码中,plot函数用于绘制折线图,x和y分别表示横轴和纵轴上的数据。
MatlabGUI设计详细说明Matlab GUI设计⼩结1.pushbutton在function pushbutton1_Callback(hObject,eventdata,handles)下进⾏pushbutton功能设计,按下pushbutton后会执⾏回调函数callback中的程序,双击pushbutton弹出属性编辑对话框,在String中可以键⼊pushbutton的名字function pushbutton1_Callback(hObject,eventdata,handles)%功能程序代码guidata(hObject,handles);2.edit编辑框%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%get()set()num2str()str2num()open函数名%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% edit可以作为输⼊输出读⼊数据d=get(handles.edit1,’String’);这时读进来的是字符型数据,通过str2num可以转换成double型d=str2num(d);作为输出,通过set来设置,输出的应该是字符型,可以通过num2str把set(handles.edit1,’String’,num2str(d));matlab的系统函数如get(),set(),num2str(),str2num()可以通过在matlab命令⾏中键⼊open函数名来查看函数实现源代码3.static text静态⽂本框text只能作为输出,通过set(handles.text1,’String’,str)来设置text显⽰的内容,也可以在属性编辑对话框中String中直接键⼊。
4.popupmenu下拉菜单这是第⼀个⽐较复杂的对象。
在GUI编程可以直接在属性编辑对话框中String⼀项直接键⼊下拉菜单中的内容然后是如何读取下拉菜单中选中的内容通过Value可以获取下拉菜单中当前选中的是哪⼀个String,Val=get(handles.popupmenu1,’Value’)返回的是下拉菜单中选中的string对应的位置Popupmenu其实是⼀个字符串数组,Value返回的是当前选中的字符串在数组中的下标,下标是从1开始。
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 menuZoomInhFigChildren = allchild(gcf);% menuView handlehMenuView = findobj(hFigChildren,'Tag','menuView');hvc = allchild(hMenuView);% menuViewZoomhViewZoom = findobj(hvc,'Tag','menuViewZoom');hvzc = allchild(hViewZoom);%menuZoomIn handlehZoomIn = findobj(hvzc,'Tag', 'menuZoomIn');获取设置菜单状态得到菜单的句柄后就可以得到菜单当前的状态了:if strcmp(get(hZoomIn, 'Checked'),'on')set(hZoomIn, 'Checked', 'off');elseset(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);4.获取工具栏句柄% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end5.获取figure工具栏按钮的tag值% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end% get all childrenhChildren = allchild(hToolbar);if isempty(hChildren), return,endhTags = 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 firstset(hObject,'Toolbar','figure');% get toolbar handletbh = findall(hObject,'Type','uitoolbar');if isempty(tbh), return, end% toolbar buttons collectionhChildren = allchild(tbh);if isempty(hChildren), return, end% delete data cursor buttonhDeleted = findobj(hChildren,'Tag','Exploration.DataCursor');delete(hDeleted);8.设置figure工具栏按钮的状态% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end% get all childrenhChildren = allchild(hToolbar);if isempty(hChildren), return,endhTags = get(hChildren, 'Tag');% find "Zoom In" buttonhb = findobj(hChildren,'Tag','Exploration.ZoomIn');if isempty(hb),return, end% set stateif strcmp(get(hObject, 'Checked'),'on')set(hObject, 'Checked', 'off');set(hb,'State', 'off');elseset(hObject, 'Checked', 'on');set(hb,'State', 'on');end。
GUI 图像处理系统图像处理系统
现在介绍一下本系统的功能。
界面如下现在介绍一下本系统的功能。
界面如下
可通过上面的菜单栏menubar 选择不同的功能,如下选择不同的功能,如下
文件——打开文件,保存为,退出文件——打开文件,保存为,退出
编辑——图像变形(图像翻转,图像旋转),添加噪声,滤波处理(低通滤波处理,高通滤波处理,图像滤波),常用处理(亮度,灰度,对比度,放大缩小,直方图均衡,直方图统计),特殊处理(底片效果,边缘信息)果,边缘信息)
帮助——关于帮助——关于
各个功能可分别显示与隐藏,全部显示后的功能如下各个功能可分别显示与隐藏,全部显示后的功能如下。
matlab学习GUI的基本操作在命令⾏窗⼝输⼊guide
单击确定后出现,可以选择控件来设计,然后可以保存
右击可以查看控件的所有属性
举⼀个简单的GUI实例---实现数据的传输添加可编辑⽂本框
更改字体⼤⼩,string默认的删掉
在按钮“数据传递”上右击,找到数据查看--->回调函数,然后保存,名为⽐如是GUI_01,然后会出现如下的.m编写
在这⾥⾯实现数据传递
%%点击按钮时,handles.edit1代表第⼀个⽂本框,⽤⼀个get函数得到edit1中的数据
str=get(handles.edit1,'String');
%%⽤set函数将得到的字符写到edit2中
set(handles.edit2,'String',str);
然后运⾏该程序,可以实现将左⽂本框的内容传递给右⽂本框。
matlab gui面板的用法MATLAB GUI面板(Graphical User Interface)是一种基于MATLAB的界面开发工具,可以帮助用户以可视化的方式操作MATLAB程序。
GUI面板提供了一种直观、交互式的方式来与MATLAB程序进行互动,使得用户无需编写代码即可控制和操作程序。
本文将逐步介绍MATLAB GUI面板的用法,包括面板的创建、布局设计、图形元素的添加、回调函数的编写等内容。
第一步:创建GUI面板首先,打开MATLAB,并点击“APP Designer”按钮,进入GUI设计界面。
在界面左侧的“Component Library”面板中,选择“Panel”组件,拖动到界面中央的设计区域,即可创建一个GUI面板。
第二步:布局设计在GUI面板中,可以使用不同的布局方式来排列和组织图形元素。
在“Layout”面板中,可以选择水平布局、垂直布局或网格布局,并通过调整行列数或拖拽边缘来自定义布局。
此外,还可以使用“Tab Group”组件来创建选项卡式布局,方便用户切换不同功能模块。
第三步:添加图形元素在GUI面板中,可以通过“Component Library”面板中的组件来添加各种图形元素,如按钮、文本框、复选框、滑块等。
选择所需的组件,并将其拖动到GUI面板中,然后通过调整大小和位置来进行界面布局和排列。
第四步:设置图形元素属性每个图形元素都有一组属性,可以通过在“Properties”面板中选择和修改来定制图形元素的外观和行为。
例如,可以修改按钮的文本和颜色、文本框的默认值和输入限制、滑块的范围和步长等。
通过设置这些属性,可以使得GUI界面更符合用户的需求。
第五步:编写回调函数回调函数是MATLAB GUI面板中用于响应用户操作的函数。
当用户与图形元素进行交互时,比如点击按钮或调整滑块,相应的回调函数将被触发执行。
为了编写回调函数,可以通过点击图形元素,在“Properties”面板中找到“Callback”属性,并使用编辑器来编写相应的MATLAB代码。
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);
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。