在一个父函数内部,我有一个与 gui 上的按钮相关的回调函数。
当按钮被按下时,它所做的一件事是定义一个需要持久化的变量(比如说 X),以便稍后父函数的另一个子函数可以使用 X。(即回调函数 A 创建变量 X。稍后,functionB 需要知道变量 X,才能知道要采取的特定路径)
有什么办法可以解决这个问题吗?我已经阅读了使用句柄将其传递给第二个函数的内容,但我似乎无法找到一种方法来做到这一点。
在一个父函数内部,我有一个与 gui 上的按钮相关的回调函数。
当按钮被按下时,它所做的一件事是定义一个需要持久化的变量(比如说 X),以便稍后父函数的另一个子函数可以使用 X。(即回调函数 A 创建变量 X。稍后,functionB 需要知道变量 X,才能知道要采取的特定路径)
有什么办法可以解决这个问题吗?我已经阅读了使用句柄将其传递给第二个函数的内容,但我似乎无法找到一种方法来做到这一点。
间接来自 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
成员的值,之后就不需要保存了。