我是MATLAB的GUI编程新手,所以我的问题与此有关。
假设我使用GUIDE创建GUI。在创建功能
中MyGUI_OpeningFcn(hObject, eventdata, handles, varargin)
我叫另一个函数,
SamplingRate_Callback(handles.SamplingRate, eventdata, handles)
定义为
function SamplingRate_Callback(hObject, eventdata, handles)
SamplingRate_Callback设置了一些变量,
handles.a = 1;
handles.b = 2;
handles.c = 3;
handles
结构在SamplingRate_Callback
函数内正确更新。我遇到的问题是,除非我将功能更改为
function handles = SamplingRate_Callback(hObject, eventdata, handles),
我无法将数据返回给调用函数MyGUI_OpeningFcn
。我尝试过使用guidata(gcf, handles)
和guidata(hObject, handles)
,但都不行。
你能否解释一下这个问题?
此外,我不确定何时使用guidata(gcf, handles)
与guidata(hObject, handles)
。
感谢您的帮助!
答案 0 :(得分:0)
如何在SamplingRate_Callback
功能中拨打MyGUI_OpeningFcn
?在我看来,你还没有定义返回值,在这种情况下将是values
。
修复将是这样的:
function [handles] = SamplingRate_Callback(hObject, eventdata, handles)
然后你可以这样从SamplingRate_Callback
致电MyGUI_OpeningFcn
:
handles = SamplingRate_Callback(handles.SamplingRate, eventdata, handles);
答案 1 :(得分:0)
根据数据的含义,您可以使用 getappdata 和 setappdata 来保存和加载来自对象本身的数据(我通常使用的是数据将被绘制在。)。