如何创建调用句柄对象的 uicontrol 对象的回调函数

我不这么认为

我已经定义了一个 uicontrol 按钮对象,当我点击按钮时,我想在句柄中显示一些东西。当我尝试这样做时,出现错误Undefined function or variable 'handles'它看不到 GUI 代码中的句柄或任何其他对象。

handles.c = 3;
A = uicontrol('Style', 'pushbutton');
A.Callback = display(handles.c)

这段代码给出了我在上面输入的错误。我可能必须将句柄对象作为输入提供给回调,但我不知道该怎么做。

提前致谢。

苏弗

为了访问handlesMATLAB 的 UI 文档中经常提到数据结构,您必须guidata在回调中使用来设置新值和检索现有值。

因此,从任何地方开始,如果您想设置该值,您将需要执行以下操作:

handles.c = 3

% Replace `gcf` with the explicit handle to your figure if possible
guidata(gcf, handles)

然后在您的回调中,您可以guidata通过以下方式获取当前信息

function callback(src, event)
  handles = guidata(src);
  display(handles.c)
end

然后将此函数作为回调分配给您的 uicontrol

A = uicontrol('Style', 'pushbutton', 'Callback', @callback);

如果您不想创建单独的回调函数而是坚持单行,则可以创建一个匿名函数来完成类似的任务

A.callback = @(src, evnt)display(getfield(guidata(src), 'c'))

如您所见,显式函数更容易理解

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章