Matlab:当另一个函数调用时,从回调函数获取GUI句柄值
我不熟悉MATLAB的GUI编程,所以我的问题与此相关 假设我使用GUIDE创建了一个GUI。在创建函数中Matlab:当另一个函数调用时,从回调函数获取GUI句柄值,matlab,matlab-guide,Matlab,Matlab Guide,我不熟悉MATLAB的GUI编程,所以我的问题与此相关 假设我使用GUIDE创建了一个GUI。在创建函数中 MyGUI_OpeningFcn(hObject, eventdata, handles, varargin) 我调用另一个函数 SamplingRate_Callback(handles.SamplingRate, eventdata, handles) 定义为 function SamplingRate_Callback(hObject, eventdata, handles)
MyGUI_OpeningFcn(hObject, eventdata, handles, varargin)
我调用另一个函数
SamplingRate_Callback(handles.SamplingRate, eventdata, handles)
定义为
function SamplingRate_Callback(hObject, eventdata, handles)
SamplingRate_回调设置了几个变量
handles.a = 1;
handles.b = 2;
handles.c = 3;
处理结构在SamplingRate\u回调
函数中正确更新。我遇到的问题是,除非我将函数更改为
function handles = SamplingRate_Callback(hObject, eventdata, handles),
我无法将数据返回到调用函数MyGUI\u OpeningFcn
。我曾经尝试过使用guidata(gcf,handles)
和guidata(hObject,handles)
,但两者都不起作用
你能解释一下这个问题吗
另外,我不确定何时使用guidata(gcf,handles)
vs.guidata(hObject,handles)
谢谢你的帮助 如何在MyGUI\u OpeningFcn
函数中调用SamplingRate\u Callback
?在我看来,您似乎还没有定义返回值,在本例中,返回值将是values
解决方案如下:
function [handles] = SamplingRate_Callback(hObject, eventdata, handles)
handles = SamplingRate_Callback(handles.SamplingRate, eventdata, handles);
然后您可以从MyGUI\u OpeningFcn
调用SamplingRate\u Callback
,如下所示:
function [handles] = SamplingRate_Callback(hObject, eventdata, handles)
handles = SamplingRate_Callback(handles.SamplingRate, eventdata, handles);
根据数据的含义,您可以使用getappdata和setappdata将数据保存到对象本身或从对象本身加载数据(我通常使用将绘制数据的轴)。Hi nrz,感谢您的回答。是的,那会有用的。我想我不明白为什么当使用其GUI元素直接调用SamplingRate_回调时,您可以简单地使用GUI数据保存持久句柄值,但是如果您以另一种方式调用同一函数,GUI数据就不起作用了。这有意义吗?你知道为什么吗?