引言
最近一一个项目需要matlab做上位机,所以捡起了扔了好久的matlab的GUI,之前一直在参数传递和handles,hObject,guidata这些问题上面搞不清,刚才终于给搞清楚了,那就废话不多说,开始吧。
handles和hObject
handles和hObject都是matlab自己规定好的句柄,handles相当于是一个大箱子,包含了当前界面里面的所有句柄,hObject是与回调函数关联的控件的句柄(比如说axes,uicontrol等等)
guidata
这个函数我真的是纠结了很久,大家只需要记住
handles=guidata(hObject);%把句柄传递进入函数
guidata(hObject,handles);%更新函数句柄
其他说明
- m文件运行完之后在命令行里面可能会不出现数据更新的情况,但是大家不要以为handles没有被更新,为了检验,可以写两个互不相关的callback来进行检验
- 自己使用纯m文件来写gui的时候,在前面可以直接使用handles作为结构来定义控件,比如说
handles.h1=axes(...)
handles.h2=uicontrol(...)
- 需要全局使用的数据也可以定义在handles的结构里面