- loop over the handles just like when creating the edit boxes, or
- simply get all values at once: get(edit,'String')
How to get data from a variable number of Edit Text box in Matlab GUI ?
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello everyone,
I am creating a GUI where a variable number of edit box is created based on the number entered from the user. Then I need to get the data written in each edit box. To do that I created a cycle for where N edit text boxes are generated using uicontrol.
for K=1:N
edit(K) = uicontrol('Style', 'edit', 'String', '', 'Units', 'Pixels', 'Position', [175 ypos 110 30],'callback',@thickness);
end
The problem is that I cannot get the values from each box because it gives me only the value written in the last box.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function []=thickness(hObject, eventdata, handles)
val=get(hObject,'string')
setappdata(0, 'value',val);
Do you have any suggestion how to save the data from all the boxes for example in a array? Thank you in advance
0 Kommentare
Akzeptierte Antwort
Stephen23
am 22 Mai 2018
Bearbeitet: Stephen23
am 22 Mai 2018
You will need to pass the array of handles edit to the callback/function where you want to access them all, and either:
What you are doing now will only access one edit box, because when the callback thickness is called the input hObject only contains the handle for that one edit box that triggered the callback, not for all of the handles. Thus you need to pass all the handles yourself if you want to access them all at once.
5 Kommentare
Stephen23
am 23 Mai 2018
Bearbeitet: Stephen23
am 23 Mai 2018
@MDC: you forgot to pass the handles to the callback where you want to use them, just like I told you to do in my answer. Have a look at the callback thickness: where is edit defined? Answer: nowhere, thus the error. You will need to pass edit, e.g. using the handles structure:
for k = ...
handles.edit(k) = ...
end
guidata(hObject,handles)
and in the callback where you want to use edit:
get(handles.edit,'String')
If you do not pass edit to the other callbacks, then it is not available in those other callbacks. You have to explicitly pass it in the code, because variables do not just magically jump from one callback to another (or from one workspace to another) (and nor should they).
Weitere Antworten (1)
Ahmed Anas
am 3 Aug. 2019
Kindly send me the complete code for this, cant understand it well and have following error.
Error using My>thickness (line 135)
Not enough input arguments.
Error while evaluating UIControl Callback
Error using My>thickness (line 135)
Not enough input arguments.
Error while evaluating UIControl Callback
0 Kommentare
Siehe auch
Kategorien
Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!