UI without GUIDE. The problem with edit element

1 visualización (últimos 30 días)
Sergey Lopatnikov
Sergey Lopatnikov el 26 de Abr. de 2016
Editada: Stephen23 el 26 de Abr. de 2016
I try make UI without GUIDE
I wrote simple code:
function testui()
f=figure();
f.Color='black';
f.ToolBar='none';
ui=uicontrol('Style','edit');
ui.HorizontalAlignment='right';
ui.String='0';
myvar=2;
pb=uicontrol('Style','pushbutton','Position',[250 20 60 20],'String', 'Evaluate', 'Callback',{@pushbutton_callback,myvar,ui.String})
end
function pushbutton_callback(hObject,callbackdata,x,Y)
F=str2double(Y);
display(F)
display (x)
end
The problem is that even if I enter in edit box some string (number< say 10 and click "Enter", which must change the handle ui.String), I do not get this number in pushbutton_callback function. I get only predefined ui.String (if not empty): F = 0 x = 2 Instead of F = 10 x = 2 as expected. What do I wrong?
[EDITED, Jan. Please format your code - Thanks!]

Respuesta aceptada

Robert
Robert el 26 de Abr. de 2016
You should be passing into the callback function the handle to your edit box. For example
... ,'Callback',{@pushbutton_callback,myvar,ui})
Then get the value from the edit box inside the callback. The way you are doing it, MATLAB is evaluating the value of the string and saving the literal as part of the callback function call. It will not evaluate it again.
With the revisions, your code becomes:
function testui()
f=figure();
f.Color='black';
f.ToolBar='none';
ui=uicontrol('Style','edit');
set(ui,'HorizontalAlignment','right') % set works in R2014a and older, too
set(ui,'String','0')
myvar=2;
uicontrol('Style','pushbutton','Position',[250 20 60 20],'String', ...
'Evaluate', 'Callback',{@pushbutton_callback,myvar,ui});
end
function pushbutton_callback(~,~,x,Y) % use ~ to ignore inputs we don't use
F=str2double(get(Y,'String'));
display(F)
display(x)
end
  2 comentarios
Sergey Lopatnikov
Sergey Lopatnikov el 26 de Abr. de 2016
thanks. It works.
Robert
Robert el 26 de Abr. de 2016
If this answered your question, please consider accepting the answer using the blue "Accept this Answer" button above.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by