GUI issue edit text boxes not empty when blank

5 views (last 30 days)
I want to check if my edit-text fields in my GUI are blank, before checking if these values are valid for a given piece of equipment.
My code is:
function CheckValuesButton_Callback(hObject, eventdata, handles)
if handles.NominalWeightRadio == 1
NW = (handles.NominalWeightEdit);
if isempty(NW)
errordlg('Add Nominal Weight.','Error')
return
end
end
BOPType = char(handles.BOPTypeBox);
RamDesign = char(handles.RamDesignBox);
ID = (handles.InsideDiameterEdit);
if isempty(ID)
errordlg('Add Inside Diameter.','Error')
return
end
OD = (handles.OutsideDiameterEdit);
if isempty(OD)
errordlg('Add Outside Diameter.','Error')
return
end
[MaxWall, MaxDiam] = getMaxDims(BOPType,RamDesign);
handles.errorDims = checkDims(MaxWall, MaxDiam, ID, OD);
guidata(hObject,handles)
The problem is that even though I have not touched the edit-text boxes, they are not empty, i.e., my code continues to run, and crashes in checkDims when there are no numerical values for ID and OD. When I print the handles i get:
handles =
OutsideDiameterEdit: [1x1 UIControl]
InsideDiameterEdit: [1x1 UIControl]
PipeDescriptionEdit: [1x1 UIControl]
NominalWeightEdit: 15
Where I have inserted info for the NominalWeightEdit text box.
How can I get these to be empty, instead of [1x1 UIControl].
Thanks
Joakim
  1 Comment
Joakino
Joakino on 6 Jan 2016
Edited: Joakino on 6 Jan 2016
Here is for example the code for my InsideDiameterEdit:
function InsideDiameterEdit_Callback(hObject, eventdata, handles)
% hObject handle to InsideDiameterEdit (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles.InsideDiameterEdit = str2double(get(hObject,'String'));
guidata(hObject, handles)
% Hints: get(hObject,'String') returns contents of InsideDiameterEdit as text
% str2double(get(hObject,'String')) returns contents of InsideDiameterEdit as a double

Sign in to comment.

Answers (1)

Ingrid
Ingrid on 6 Jan 2016
Edited: Ingrid on 6 Jan 2016
you should use
ID = get(handles.InsideDiameterEdit,'String')
to check what the value is in the edit-field. It will be empty if you have not typed in anything. If you have typed in a value, you should use str2double() to convert it and also perform an errorcheck there (because the user might have typed in something else than a number by mistake)
  2 Comments

Sign in to comment.

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!