UI without GUIDE. The problem with edit element
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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!]
0 commentaires
Réponse acceptée
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
Robert
le 26 Avr 2016
If this answered your question, please consider accepting the answer using the blue "Accept this Answer" button above.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Startup and Shutdown dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!