Matlab:在被另一个函数调用时从回调函数获取GUI句柄值

时间:2012-04-18 07:37:39

标签: 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)

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)

感谢您的帮助!

2 个答案:

答案 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 来保存和加载来自对象本身的数据(我通常使用的是数据将被绘制在。)。