Bonjour,
Je suis en train de créer un GUI, qui charge un fichier Excel et créé notamment un certain nombre de figures. J'ai rajouté un bouton "Clear" permettant de remettre le GUI à son état initial, et je souhaiterais aussi qu'il puisse fermer les figures. Pour ce faire j'ai déjà une première solution (un peu lourde...), pour chaque figure j'ai ce code lors du reset :
Etant donné que je vais avoir beaucoup de figures, j'ai pensé stocker tous les noms de figure dans une cellule handles.figure. j'aurais donc une boucle de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if ~isempty(findobj('type','figure','name','XXX')) close(handles.YYY); %handles.YYY est le handles associé à la figure XXX end
Le problème c'est que cela ne fonctionne pas, il me met :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for i=1:length(handles.figures) if ~isempty(findobj(handles,'type','figure','name',char(handles.figures(1,i)))) close(handles.figures{1,i}) end end
Je pense que c'est à cause des ' qui apparaissent dans le texte de la cellule lorsque je l'appelle dans close : handles.figures{1,1}='Exemple'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Error using close Invalid figure handle.
J'ai fait la même chose pour supprimer les variables que le GUI ajoute au handles :
Cela ne pose pas de problèmes car mes ' qui apparaissent dans le texte de la cellule sont compatibles avec l'utilisation de rmfield je pense.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for i=1:length(handles.variables) if isfield(handles,char(handles.variables(1,i))) handles=rmfield(handles,char(handles.variables(1,i))); end end
Si vous aviez une solution je suis preneur !
Merci d'avance.
Partager