我已经定义了一个uicontrol按钮对象,我想,以显示手柄的东西时,我点击的按钮。当我尝试这样做,我得到的错误Undefined function or variable 'handles'
。它没有看到手柄或任何其他对象,它是在GUI代码。
handles.c = 3;
A = uicontrol('Style', 'pushbutton');
A.Callback = display(handles.c)
此代码给我上面键入错误。我可能会给予处理对象的回调作为输入,但我不知道该怎么办。
提前致谢。
为了访问经常MATLAB的UI文档中提到的handles
数据结构,你必须使用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);
如果你不希望创建一个单独的回调函数,而是坚持一个班轮,您可以创建一个anonymous function来完成类似的任务
A.callback = @(src, evnt)display(getfield(guidata(src), 'c'))
正如你所看到的,明确的功能是比较容易理解