How to set the default value for Edit Text in GUI ? If not input a number , I hope the contents auto changed to be '5'

3 vues (au cours des 30 derniers jours)
In the function edit1_callback(),it is writed as :
edit1 = str2double(get(hObject,'string'));
if isempty(edit1)
edit1 = 5; % when not input a number ,the contents is 5;
end
handles.edit1 = edit1;
guidata(gcbo,handles);
As a matter of fact,when I do not input a number,the edit text contents is not 5,Why?
And ,how can I set the default value of edit text??
Thank you for your attention!

Réponse acceptée

Teja Muppirala
Teja Muppirala le 19 Nov 2012
STR2DOUBLE returns NaN for non-numeric data. Instead of checking for empty input using ISEMPTY, use ISNAN instead.
if isnan(edit1)
set(handles.edit1,'string','5');
end
  2 commentaires
Lisa Wu
Lisa Wu le 19 Nov 2012
Modifié(e) : Lisa Wu le 19 Nov 2012
As you said: function edit1_callback() edit1 = str2double(get(hObject,'string')); if isnan(edit1) set(handles.edit1,'string','5'); end guidata(gcbo,handles);
funciton pushbutton1_callback() x = handles.edit1; y = x+7; plot(x,y,'*r'); guidata(gcbo,handles);
When run it ,the default value of x is not 5 ,i'm puzzled. Thank you !
Arthur
Arthur le 19 Nov 2012
You forgot to store edit1. And, I think it's better to retrieve the value of handles.edit1 in the pushbutton callback. Try this:
function edit1_callback()
edit1 = str2double(get(hObject,'string'));
if isnan(edit1)
set(handles.edit1,'string','5');
end
function pushbutton1_callback()
x = str2double(get(handles.edit1,'String'));
y = x+7;
plot(x,y,'*r');

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by