MATLAB Answers

programmatic GUI callback function

1 view (last 30 days)
I want to access the GUI control from the call back function. how can I do this. I got the below code from Matlab help but it gives an error when executed. How can I access the slider from the call back function.
function mygui()
figure
uicontrol('Style','slider','Callback',@display_slider_value);
end
function display_slider_value(hObject,callbackdata)
newval = num2str(hObject.Value);
disp(['Slider moved to ' newval]);
end

  0 Comments

Sign in to comment.

Accepted Answer

Geoff Hayes
Geoff Hayes on 24 Dec 2014
Akshata - what is the error message? Note that if you are trying to get the current value of the slider, you could try using
newval = num2str(get(hObject,'Value'));
The above assumes that the error has something to do with the current line that gets the newval.

  3 Comments

Chandrasekhar
Chandrasekhar on 24 Dec 2014
Hi, thanks for your reply. Even this gives an error. Error if found when I change the slider position on the GUI. Please find the error message below
Attempt to reference field of non-structure array.
Error in mygui>display_slider_value (line 6)
newval = num2str(get(hObject.Value));
Error while evaluating uicontrol Callback
Geoff Hayes
Geoff Hayes on 24 Dec 2014
The error message is indicating that you are trying to access a field of an object that is not a structure. In your case, hObject is not a structure and so you can't access Value from it. Which version of MATLAB are you using?
To get around this error, replace your line with
newval = num2str(get(hObject,'Value'));
as described above.
Chandrasekhar
Chandrasekhar on 24 Dec 2014
Thanks for the reply. It worked I am using 2012b

Sign in to comment.

More Answers (1)

Sean de Wolski
Sean de Wolski on 24 Dec 2014
I fyou're using a version of MATLAB < R2014b, hObject.Value won't work. That syntax is added in R2014b.
If your company/university if current on maintenance, you should be able to upgrade at no additional cost. If not, use get(hObject,'Value')

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!