- 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 ?
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MDC
el 22 de Mayo de 2018
Respondida: Ahmed Anas
el 3 de Ag. de 2019
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 comentarios
Respuesta aceptada
Stephen23
el 22 de Mayo de 2018
Editada: Stephen23
el 22 de Mayo de 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 comentarios
Stephen23
el 23 de Mayo de 2018
Editada: Stephen23
el 23 de Mayo de 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).
Más respuestas (1)
Ahmed Anas
el 3 de Ag. de 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 comentarios
Ver también
Categorías
Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!