0

在一个父函数内部,我有一个与 gui 上的按钮相关的回调函数。

当按钮被按下时,它所做的一件事是定义一个需要持久化的变量(比如说 X),以便稍后父函数的另一个子函数可以使用 X。(即回调函数 A 创建变量 X。稍后,functionB 需要知道变量 X,才能知道要采取的特定路径)

有什么办法可以解决这个问题吗?我已经阅读了使用句柄将其传递给第二个函数的内容,但我似乎无法找到一种方法来做到这一点。

4

1 回答 1

0

间接来自 Matlabguidata文档

在第一个回调函数中:

function first_Callback(hObject, eventdata, handles)

% add some additional data as a new field called x
handles.x = 1;
% Save the change you made to the structure
guidata(hObject, handles)

在第二个回调函数中简单地使用handles.x,因为句柄已经作为参数传递给第二个回调,如果它们属于同一个父图形。

function second_Callback(hObject, eventdata, handles)

% a will have the value 1
a = handles.x;

注意:即使您将句柄保存到hObject(这是调用回调函数的当前对象),句柄结构对同一图窗上的其他对象也是可见的。handles将结构保存hObject到父图形和保存到父图形实际上是相同的。此外,只有在对结构guidata进行更改时才需要使用。handles如果只读取一个handles成员的值,之后就不需要保存了。

于 2013-06-06T23:52:14.100 回答