3

我是 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)and guidata(hObject, handles),但都不起作用。

你能解释一下这个问题吗?

另外,我不确定何时使用guidata(gcf, handles)vs. guidata(hObject, handles)

谢谢你的帮助!

4

2 回答 2

0

根据数据的含义,您可以使用getappdatasetappdata将数据保存到对象本身或从对象本身加载数据(我通常使用将绘制数据的轴)。

于 2012-05-22T07:48:40.103 回答
0

你如何调用SamplingRate_Callback你的MyGUI_OpeningFcn函数?在我看来,您还没有定义返回值,values在这种情况下就是这样。

修复将是这样的:

function [handles] = SamplingRate_Callback(hObject, eventdata, handles)

然后你会这样打电话SamplingRate_CallbackMyGUI_OpeningFcn

handles = SamplingRate_Callback(handles.SamplingRate, eventdata, handles);
于 2012-04-18T08:08:00.827 回答