how to get uicontrol value inside a callback function?
显示 更早的评论
Hi, I have a have written a function which has several callback functions. My function acts on a figure. I have added a uicontrol button to my figure and this is where my problem starts.
I would like to get the value of the GUIbutton state while I am still inside another callback function.
%==another callback function===
button1 = uicontrol('Style','pushbutton', 'Value', f,'pos',...
[20 10 10 10],'string','text_here');
state=get(handles.button1, 'Value');
if state==1;%button is clicked
%do something
else
%do something else
end
%===another callback function====
this doesnt work, because the class handles is undefined, but unfortunately I am unable to understand how to fix it.
采纳的回答
更多回答(1 个)
The easiest way would be to use nested functions, then the variable handles is visible inside the callback workspaces as well, without needing to pass it explicitly:
function main
handles.cancelBut = ...
...
function callback_cancel_button
get(handles.cancelBut,'Value')
end
end
Otherwise you should read the documentation, which describes all of the ways to pass variables (e.g. your handles structure) between callbacks:
1 个评论
Walter Roberson
2015-9-24
If you are using GUIDE, then this is not the easiest way, as GUIDE historically does not terminate each function with a matching "end" statement as is required for all functions in the same file if you want to use nested functions.
类别
在 帮助中心 和 File Exchange 中查找有关 Interactive Control and Callbacks 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!