关于gui中的 hobject eventdata matlab guihandless都是什么意思

MATLAB GUI图形的数字化处理代码_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MATLAB GUI图形的数字化处理代码
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Matlab Gui 控件调用另一控件的callback函数或控件其它函数_word文档在线阅读与下载_无忧文档
无忧文档可免积分在线阅读和下载文档
包括资格考试、应用文书等大量word文档免费下载
Matlab Gui 控件调用另一控件的callback函数或控件其它函数
你要在Button1_Callback(hObject, eventdata, handles)内调用Button2的回调函数Button2_Callback(hObject, eventdata, handles)函数,只需加上下面红字部分即可:
Button2_Callback((hObject, eventdata, handles);%%%%以下省略成Button2_Callback
但会有这样的问题存在,即在Button2_Callback函数中已经加入guidata(hObject,handles),用Button2按钮调用Button2_Callback函数,里面的handles.xxx 变量参数可以传递出去;但是用Button1按钮调用Button2_Callback函数,里面的handles.xxx 变量参数将不能传递出去。
这时若调用Button2_Callback函数,需要在Button1_Callback((hObject, eventdata, handles)函数里添加成如下代码形式: Button2_Callback((hObject, eventdata, handles);%%%%
handles=guidata(hObject);
这对于Button按钮是适合的,但是对于Popupmenu这样的控件,需要得到控件的值时,也存在调用失败的问题!因此,需要进一步的找出原因!
下面写于日
上面说到对于像Popupmenu这样的控件调用会出错,其实是由于自己没有真正看懂程序的原因。
控件的Popupmenu__Callback(hObject, eventdata, handles)里需要得到Popupmenu的值,里面有一句
val = get (hObject,'Value');
就是这个hObject捣的怪,改成val = get (handles.Popupmenu,'Value');就可以了,其他控件调用也不会出错。
关于guidata(hObject,handles)和handles=guidata(hObject)的区别,等详细查明了资料时,再公于贴!
Word文档免费下载:
(共1页,当前第1页)
的相关文档搜索
关于matlab gui 的callback函数 使用_工学_高等教育_教育专区。关于matlab gui...所以在控件 A 自己的回调函数中,要获取或者设 置别的控件的属性,就用 handles...比较有用的matlab_GUI控件的使用_理学_高等教育_教育专区。Matlab GUIDE 使用...你可以使用属性编辑器来设置属性 三:写回调函数 CallBack 每个控件都有几种回调...MATLAB GUI新手备忘录--常用控件callback格式_互联网_IT/计算机_专业资料。...知道这个函数意思了吧? errodlg('You must entry a number value','Bad ...matlab_GUI_设计的控件使用_IT/计算机_专业资料。matlab_GUI_设计的控件使用...你可以使用属性编辑器来设置属性 三:写回调函数 CallBack 每个控件都有几种回调...matlab GUI 设计的控件使用_工学_高等教育_教育专区。介绍用matlab GUI开发的...你可以使用属性编辑器来设置属性 三:写回调函数 CallBack 每个控件都有几种回调...matlab GUI设计中常用控件格式_IT/计算机_专业资料。收集的一些常用的控件格式,...每一个控件的回调函数头: function myc_Callback(hObject, eventdata, handles)...Matlab的GUI参数传递方式_工学_高等教育_教育专区。...userdata 属性进行各个 callback 之间的数据存取操作...函数(gui 间和 gui 内,推荐使用) 使用上面三个...Matlab GUIDE使用总结--Matlab GUI界面(zz)_IT/计算机_专业资料。Matlab GUIDE...你可以使用属性编辑器来设置属性 三:写回调函数 CallBack 每个控件都有几种回调...Matlab 全局变量 传递方式 参数 调用 函数 matlab gui 杂谈 转载自: http:/...’callback’,'A=getappdata(gcf,’A')’); 当在主子 gui 内调用时,可以...GUIDE主要是一个界面设计 工具集,MATLAB将所有GUI支持的控件 都集成在这个环境中...生成回调函数原型(Generate callback function prototypes); ? 同一时刻仅允许...matlab如何修改GUI按钮背景颜色 | Matlab小组 | 果壳网 科技有意思
895人加入此小组
首先创建如图所示的GUI注:所有的控件的Units值都得设置为pixels 打开对应的.m文件,找到OpeningFcn回调函数下 % --- Executes just before untitled is made visible.function untitled_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject
handle to figure% eventdata
reserved - to be defined in a future version of MATLAB% handles
structure with handles and user data (see GUIDATA)% varargin
command line arguments to untitled (see VARARGIN) % Choose default command line output for untitledhandles.output = hOset(handles.figure1,'units','pixels',...
'menubar','none',...
'numbertitle','off');set(handles.axes1,'units','pixels',...
'xtick',[],'ytick',[],...
'handlevisibility','on',...
'visible','off');II=imread('1.jpg');image(II)pu=get(handles.pushbutton1,'position');% 获得按钮控件的位置信息 F=getframe(handles.axes1,pu);%在axes中得到对应按钮位置的图像特征%注:按钮的vision属性一定要在获得对应按钮位置的图像特征前关闭,不然获得对应位置的图像特征时,得到的对应区域还是按钮的颜色背景颜色,而不是GUI背景的颜色set(handles.pushbutton1,'style','push',...
'units','pix',...
'fontsize',40,'fontweight','bold',...
'string','°?按钮');axis offset(handles.pushbutton1,'cdata',F.cdata, 'foregroundc',[1 1 1])%将按钮位置对应的位置的背景图作为按钮的背景set(handles.pushbutton1,'visible','on');%显示背景修改后的按钮% Update handles structureguidata(hObject, handles);% UIWAIT makes untitled wait for user response (see UIRESUME)% uiwait(handles.figure1); % --- Outputs from this function are returned to the command line.function varargout = untitled_OutputFcn(hObject, eventdata, handles)% varargout
cell array for returning output args (see VARARGOUT);% hObject
handle to figure% eventdata
reserved - to be defined in a future version of MATLAB% handles
structure with handles and user data (see GUIDATA)
varargout{1} = handles.
+ 加入我的果篮
(C)2016果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号&&&&
违法和不良信息举报邮箱:&&&&举报电话:Matlab GUI界面 - 技术蛀虫 - 博客园
随笔 - 105
文章 - 131
去年做了一些关于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:菜单编辑器。二:使用控件新建一个布局(窗口),可以在新窗口中添加如下控件1.静态文本(Static Text)&&& &&& 2.编辑框(Edit Text)控件3.列表框(Listbox)控件&&& &&& &&& 4.滚动条(Slider)控件5.按钮(Push Button)控件&&& &&& 6.开关按钮(Toggle Button)控件7.单选按钮(Radio Button)控件&&& &&& 8.按钮组(Button Group)控件9.检查框(Check Box)控件&&& &&& 10.列表框(Listbox)控件11.弹出式菜单(Popup Menu)控件&&& 12.坐标轴(Axes)控件13.面板(Panel)控件每一个控件都有自己的属性常规属性有:&&& &&& 一、控件风格和外观&&& &&& (1)BackgroundColor:设置控件背景颜色,使用[R G B]或颜色定义。&&& &&& (2)CData:在控件上显示的真彩色图像,使用矩阵表示。&&& &&& (3)ForegroundColor:文本颜色。&&& &&& (4)String属性:控件上的文本,以及列表框和弹出菜单的选项。&&& &&& (5)Visible:控件是否可见。&&& &&& 二、对象的常规信息&&& &&& (1)Enable属性: 表示此控件的使能状态,设置为on&,表示可选,为&off&时则表示不可选。&&& &&& (2)Style:控件对象类型。&&& &&& (3)Tag:控件表示(用户定义)。&&& &&& (4)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。&&& &&& (5)UserData:用户指定数据。&&& &&& (6)Position:控件对象的尺寸和位置。&&& &&& (7)Units:设置控件的位置及大小的单位&&& &&& (8)有关字体的属性,如 FontAngle, FontName等。&&& &&& 三、控件回调函数的执行&&& &&& (1)BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)。&&& &&& (2)ButtonDownFcn属性:按钮按下时的处理函数。&&& &&& (3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。&&& &&& (4)CreateFcn:在对象产生过程中执行的回调函数。&&& &&& (5)DeleteFcn:删除对象过程中执行的回调函数。&&& &&& (6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。&&& &&& 四、控件当前状态信息&&& &&& (1)ListboxTop:在列表框中显示的最顶层的字符串的索引。&&& &&& (2)Max:最大值。&&& &&& (3)Min:最小值。&&& &&& (4)Value:控件的当前值。你可以使用属性编辑器来设置属性
三:写回调函数 CallBack 每个控件都有几种回调函数,右键选中的控件一般会有如下菜单:
然后就可以跳转到相应的 Editor中编辑代码,GUIDE会自动生成 相应的函数体,函数名,名称一般是 控件 Tag+ Call类型名 参数有三个 ( hObject, eventdata, handles)其中 hObject 为发生事件的源控件,eventdata为事件数据结构,handles为传入的对象句柄CreateFcn 是在控件对象创建的时候发生(一般为初始化样式,颜色,初始值等)DeleteFcn 实在空间对象被清除的时候发生ButtonDownFcn和KeyPressFcn分别为鼠标点击和按键事件CallbackCallBack为一般回调函数,因不同的控件而已异。例如按钮被按下时发生,下拉框改变值时发生,sliderbar 拖动时发生等等。四:句柄图形之间的层次关系
可以创建 图形句柄的常见函数1.figure函数:创建一个新的图形对象。2.newplot函数:做好开始画新图形对象的准备。3.axes函数:创建坐标轴图形对象。4.line函数:画线。5.patch函数:填充多边形。6.surface函数:绘制三维曲面。7.image函数:显示图片对象。8.uicontrol函数:生成用户控制图形对象。 9.uimenu函数:生成图形窗口的菜单中层次菜单与下一级子菜单。几个实用的小函数:uigetfile& 选择文件对话框uiputfile& 保存文件对话框uisetcolor& 设置颜色对话框fontsetcolor& 设置字体对话框msgbox&&& 消息框 warndlg&&& 警告框helpdlg& && 消息框不过如果要让父窗口不可用,你需要使用uiwait来定焦于用户对话框。例如:&&& h=helpdlg('Please press me!','Attention');&&& uiwait(h);四:获取与设置对象属性&常用函数:gcf函数:获得当前图形窗口的句柄gca函数:获得当前坐标轴的句柄gco函数:获得当前对象的句柄gcbo函数:获得当前正在执行调用的对象的句柄gcbf函数:获取包括正在执行调用的对象的图形句柄delete函数:删除句柄所对应的图形对象findobj函数:查找具有某种属性的图形对象设置方法:(1)get函数返回某些对象属性的当前值。例如:p=get(obj,'Position');&&& &(2)函数set改变句柄图形对象属性,例如:set(obj,'Position',vect);五:函数调用在一个m文件中,可以定义多个函数,但是文件名一定要与第一个函数(主函数)一致,该文件中其他函数则为本文件的私有函数,外部不可访问(可以通过参数调用的方法访问,下面会描述)。例如在一个程序中,创建一个fig后,会生成这样一个m文件:function varargout =febirdfun(varargin)gui_Singleton = 1;gui_State = struct('gui_Name',&&&&&& mfilename, ...&&&&&&&&&&&&&&&&&& 'gui_Singleton',& gui_Singleton, ...&&&&&&&&&&&&&&&&&& 'gui_OpeningFcn', @febirdfun_OpeningFcn, ...&&&&&&&&&&&&&&&&&& 'gui_OutputFcn',& @febirdfun_OutputFcn, ...&&&&&&&&&&&&&&&&&& 'gui_LayoutFcn',& [], ...&&&&&&&&&&&&&&&&&& 'gui_Callback',&& []);if nargin && ischar(varargin{1})&& gui_State.gui_Callback = str2func(varargin{1});endif nargout&&& [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else&&& gui_mainfcn(gui_State, varargin{:});end解析 一下这个主函数:首先 gui_State是一个结构,指定了figure打开和输出函数,开始 gui_CallBack为空,如果输入参数个数不为0,接下来将输入第一个参数传递给gui_State.callback。接下来用交给 gui_mainfcn函数处理,gui_mainfcn 根据gui_State和传入参数来确定是执子函数,还是打开 fig 文件和运行 OpeningFcn和OutputFcn。如过 gui_Callback为空,那么就运行打开主窗口fig文件,否则,调用子函数这个函数的作用有:1.当输入不带参数的时候,能够打开fig文件,并且初始化控件2.当指定需要调用的函数名时,可以作为其他控件callback使用 (实则调用同文件中的子函数)&& 例如,在某一个控件的 callback 里面这样写:(febrdfun为主函数)& & febirdfun("@push_button_Callback",gcbf,[])& 这样的调用就可以调用文件里面的子函数。当然也可以使用其他文件里面的函数作为callback,不过那样的话,数据传递会麻烦一些。下面看figure Openning Function%================================function Main_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hO% 通常在这里面定义自己的数据结构例如s=struct("P1",v1...&&&&&&&&&&&& "P2",v2);handles.MyStruct=s; % 更新handles数据结构& 非常重要!!guidata(hObject, handles);%================================function varargout = Main_OutputFcn(hObject, eventdata, handles)varargout{1} = handles.这个函数是输出返回值的定义注意:& matlab 中,function 对应的 end 可以没有,但是随着版本的更新,end将会被要求。六:数据传递在matlab GUI程序中进行值传递我经常使用的两种方法:1.利用主函数 的 handles 数据结构传值例如在某一个图像窗口句柄 中有一个对象 handles(可以定义自己的数据结构)那么在一个子Callback函数中,可以通过handles传递数据:function& sliderbar1_Callback(hObject,eventdata,handles)& %%& eg1& v1=get(hObject,'value');& obj=handles.Text1& %直接定位 Tag 为 Text1的控件 & set(obj,'value',v1);& %%& eg2& handles.MyStruct.P1=v1; % 更改handles中的数据& guidata(hObject,handles); %更新 handles !!重要end2.利用控件的 UserData 来传值& 每一个控件一般都有一个属于自己的自定义域,userData,你可以定义这样一个域用来保存自己的数据,例如在定义 timer 的 TimerFcn中t1=timer('TimerFcn',{@Timer1Fcn},'ErrorFcn',@Timer1ErrorFcn},'Period',1.0,'ExecutionMode','fixedrate');t1.Userfata=handles.MyS这里 Timer1Fcn的调用看似没有传入任何参数,实际上此函数的定义一定要有至少两个参数function Timer1Fcn(obj,eventata)&& obj.UserData=XXXXX;%可以这样共享数据& end当然Timer定义的时候允许这样传递一个参数,当然这样也可以进行传值.t1=timer('TimerFcn',{@Timer1Fcn,handles},'ErrorFcn',{@Timer1ErroFcnr,handles},'Period',1.0,'ExecutionMode','fixedrate');}

我要回帖

更多关于 eventdata 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信