Callback to edit box to update variable

13 Ansichten (letzte 30 Tage)
Mckenna Relling
Mckenna Relling am 21 Feb. 2022
Beantwortet: Voss am 22 Feb. 2022
I have begun my program by defining a variable Ground, where Ground=40. I have a ui text field corresponding to this variable, and when a user edits the text field by typing a number, I want my callback function to update the value of the Ground variable in my workspace. How can this be done? Below is what I have written, which does not work.
Ground=40;
ground_control=uicontrol('Style','edit', 'String', num2str(Ground), 'Position', [315, 70, 70, 20], 'Callback', {@change_ground});
function [Ground] =change_ground(hObject, eventdata, handles)
Ground=str2double(hObject);
end

Antworten (1)

Voss
Voss am 22 Feb. 2022
It's not typically necessary (or a good idea) to have data in a UI mirrored in the base workspace, but here's how you can do it (for educational purposes).
Ground=40;
ground_control=uicontrol('Style','edit', 'String', num2str(Ground), 'Position', [315, 70, 70, 20], 'Callback', {@change_ground});
function change_ground(hObject, eventdata, handles)
Ground = str2double(get(hObject,'String'));
assignin('base','Ground',Ground);
end
Typically your uicontrol would be part of a larger GUI that would be handling all the data, so that's why you wouldn't need to do this.

Kategorien

Mehr zu Environment and Settings finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by