Salut à tous, Je suis en train de construire un GUI dans lequel il y a une boîte d'édition, en attendant que l'utilisateur écrive un nom.Entrée d'utilisateur dans une interface graphique MATLAB
Actuellement je force l'utilisateur de donner un nom légitime avec ce code:
NewPNUName = get(handles.nameOfNewPNU, 'String');
if (isempty(NewPNUName) ||...
strcmp(NewPNUName,'Enter the name for the new PNU'))
errordlg('Please enter a name for the new PNU.');
elseif (~ischar(NewPNUName(1)))
errordlg('The PNU name should start with a letter.');
else
handles.NewPNUName = NewPNUName;
end
if (~isempty(handles.NewPNUName))
% Do all the things needed if there is a legit name
end
Ce qu'il fait est rien si l'utilisateur n'a pas écrit un nom légitime. Ce que je veux qu'il fasse est de faire un popup avec une boîte d'édition, en demandant à l'utilisateur d'entrer à nouveau le nom désiré, jusqu'à ce que ce soit un nom légitime.
Merci pour l'aide!
EDIT: @woodchips après conseil que je corrige mon code à la foloowing:
NewPNUName = get(handles.nameOfNewPNU, 'String');
ValidName = ~isempty(NewPNUName) && isletter(NewPNUName(1)) &&...
~strcmp(NewPNUName,'Enter the name for the new PNU');
while (~ValidName)
if (isempty(NewPNUName) ||...
strcmp(NewPNUName,'Enter the name for the new PNU'))
NewPNUName = char(inputdlg('Please enter a name for the new PNU.','No name entered'));
elseif (~isletter(NewPNUName(1)))
NewPNUName = char(inputdlg('The name of the new PNU should start with a letter. Please enter a new name',...
'Invalid name entered'));
else
allConds = 'are met'
end
ValidName = ~isempty(NewPNUName) && isletter(NewPNUName(1)) &&...
~strcmp(NewPNUName,'Enter the name for the new PNU');
end
Merci, j'ai maintenant mis à jour mon code en conséquence. – Yarok