我已经定义了一个 uicontrol 按钮对象,当我点击按钮时,我想在句柄中显示一些东西。当我尝试这样做时,出现错误Undefined function or variable 'handles'
。它看不到 GUI 代码中的句柄或任何其他对象。
handles.c = 3;
A = uicontrol('Style', 'pushbutton');
A.Callback = display(handles.c)
这段代码给出了我在上面输入的错误。我可能必须将句柄对象作为输入提供给回调,但我不知道该怎么做。
提前致谢。
为了访问handles
MATLAB 的 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] 删除。
我来说两句