Effacer les filtres
Effacer les filtres

UI without GUIDE. The problem with edit element

1 vue (au cours des 30 derniers jours)
Sergey Lopatnikov
Sergey Lopatnikov le 26 Avr 2016
Modifié(e) : Stephen23 le 26 Avr 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!]

Réponse acceptée

Robert
Robert le 26 Avr 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 commentaires
Sergey Lopatnikov
Sergey Lopatnikov le 26 Avr 2016
thanks. It works.
Robert
Robert le 26 Avr 2016
If this answered your question, please consider accepting the answer using the blue "Accept this Answer" button above.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by