matlab 中 hObject和handles区别
(2012-05-15 11:06:14)
标签:
杂谈 |
分类: study与matlab |
h:指回调函数被调用对象的句柄;handles:是包含GUI中所有组件句柄的结构体,该结构体的域名由对象的TAG属性定义。也可以用来传递数据给其他的回调函数和主程序。
例如:创建一个包含button的GUI,button的TAG属性设为pushbutton1,GUIDE在应用程序M文件中生成如下的回调子函数:
function pushbutton1_callback(h,evendata,handles,varargin)
然后设置button的callback
mygui('pushbutton1_callback',gcbo,[],guidata(gcbo))
其中:mygui:FIG文件名。ppushbutton1_callback:回调子函数名。gcbo:返回按钮句柄;[]:空矩阵;
只不过handles代表的是当前整个界面,hObject代表的是当前的这个控件(比如按钮,编辑框)
如果把figure对象当做一个大缸,而把其他对象例如AXES,BUTTON等等当做这个大缸里的小缸,那么handles就相当于这个大缸的句柄,可以用大缸的句柄来设置小缸的属性,例如handles.pushbutton。Hobject就相当于每一个小缸的句柄了,可以直接在响应控件的function后面加
set(hObject,'property','value');
hObject是当前控件的句柄,handles包含了整个程序所有的句柄。在当前控件的callback里可以用hObject,也可用handles.***;在别的控件的callback里可以用handles.***来调用别的控件的句柄
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%