在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
问题描述:需要在主GUI函数中调用子GUI界面,向子GUI传入参数parameter,参数在子GUI处理后传出,并传出变量flag,最后关闭子GUI界面。
子GUI界面如下:selfdefined_ISAR_Par.fig 1. 主GUI界面调用方法
输入参数:parameter 输出参数:flagreture, parameter 调用方法和调用普通子函数形式一致
2. 子GUI界面处理输入输出参数需要在子界面函数里面处理,才能被正确接收和传出。 每个GUI界面都有一个OpeningFcn函数,负责处理输入参数。 每个GUI界面都有一个OutputFcn函数,负责处理输出参数。 2.1 输入参数处理在子GUI界面函数 function selfdefined_ISAR_Par_OpeningFcn(hObject, eventdata, handles, varargin)中加入
注意:selfdefined_ISAR_Par是子界面名称;global是为了让输入参数能在其他控件函数中使用;parameter = varargin{1}意为第一个输入参数赋给parameter,同理,若有第二个输入参数,则应加入parameter2 = varargin{2}。 2.2 输出参数处理在子GUI界面函数 function varargout = selfdefined_ISAR_Par_OutputFcn(hObject, eventdata, handles) 中加入
注意:在没有参数输出时,该函数的内容默认为 varargout{1} = handles.output,若要输出自定义参数,应屏蔽 varargout{1} = handles.output 这一行内容。
3. 关闭子GUI在子界面输入参数完成后,需要点击确定退出该界面;或者不想输入参数,直接点击取消退出该界面。那么这个点击button按钮关闭GUI的代码这么写呢? 在button按钮的函数中加入以下代码
在子GUI界面函数 function varargout = selfdefined_ISAR_Par_OutputFcn(hObject, eventdata, handles) 的最后加入一行代码 delete(handles.selfdefined_ISAR_Par);加完代码如下所示
4. 错误:引用了不存在的字段 'selfdefined_ISAR_Par'关闭GUI的时候很有可能遇到错误提示:引用了不存在的字段 'selfdefined_ISAR_Par',就是自己的子界面GUI竟然找不到? 这是什么原因呢? 在子界面函数 function selfdefined_ISAR_Par_OpeningFcn(hObject, eventdata, handles, varargin) 中设个断点,在主GUI界面调用子GUI界面,运行至断点。打开工作区的 handles。 正常情况下,handles中第一个字段(第一行)应该是子界面的名称(selfdefined_ISAR_Par),但是上图中的第一行并不是子界面名称,而是 fugure1,具体为什么这里不是子界面名称,笔者并不是很清楚,应该和新建GUI的过程有关。 那如何解决这个问题呢? 解决办法:把提示引用了不存在的字段 'selfdefined_ISAR_Par'的地方,都换成 figure1 即可。主要需要换的有 uiresume(handles.selfdefined_ISAR_Par) ——> uiresume(handles.figure1) delete(handles.selfdefined_ISAR_Par) ——> delete(handles.figure1)
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论