Bonjour,
Tout d'abord je vais essayer de vous présenter au mieux mon projet et j'expliquerai mon problème par la suite.
J'ai crée 3 interfaces Matlab :
1) La première contient un PopUpMenu et un PushButton. On vient sélectionner la valeur souhaitée dans le PoPUpMenu et on appuie sur le PushButton pour passer à la seconde interface.
Une fois que le PushButton est enclenché, je ferme la première interface et j'ouvre la seconde.
2) La seconde interface comprend un StaticText, un PopUpMenu et 2 PushButton. Le StaticText prend la valeur sélectionnée dans le PopUpMenu de la première interface. En fonction de ce que que contient le StaticText, le PopUpMenu de la seconde interface est crée (je vous passe l'affichage de différentes images, cela n'est pas un problème). Si je veux revenir dans l'interface précédente j'appuie sur un PushButton 'BACK' et si je veux passer à la troisième interface j'appuie sur le PushButton 'CONTINUE'.
3) La troisième interface contient un StaticText qui prend la valeur de ce qu'il y a dans le PopUpMenu de la seconde interface, ainsi qu'un PushButton 'BACK' pour revenir à l'interface précédente.
J’espère avoir était assez claire
Pour passer la variable du PopUpMenu de l'interface 1, au StaticText de l'interface 2, je n'ai pas de problèmes j'utilise les lignes de code suivantes :
Dans le code de l'interface 1 :
Dans le code de l'interface 2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function popupmenu1_Callback(hObject, eventdata, handles) contents = get(hObject,'string') VARIABLE = contents{get(hObject,'Value')} setappdata(handles.popupmenu1,'string',VARIABLE); % mise en mémoire de ce qu'il y a dans la liste déroulante function pushbutton2_Callback(hObject, eventdata, handles) VARIABLE = getappdata(handles.popupmenu1,'string'); % la variable 'VARIABLE' prend la valeur de ce qu'il y a dans la liste déroulante close % fermeture de l'interface active INTERFACE2(VARIABLE) % ouverture de l'interface 'INTERFACE2'
Jusque là, pas de problème, je fais la même chose pour transférer le contenu du PopUpMenu de l'interface 2 dans le StaticText de l'interface 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function INTERFACE2_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for INTERFACE2 handles.output = hObject; % Update handles structure guidata(hObject, handles); VARIABLE = varargin{1}; % amener la variable 'VARIABLE' du GUI 'INTERFACE1' set(handles.text1,'string',VARIABLE); % écrire le contenu de la variable 'VARIABLE' dans le static text
Le problème intervient lorsque je suis dans l'interface 3 et je que je souhaite revenir dans l'interface 2 (avec le PushButton 'Back'), le message d'erreur suivant apparaît :
J'imagine que cela est du au fait que en ré-ouvrant l'interface 2 à partir de l'interface 3 je n'amène aucune variable, mais comment résoudre ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Index exceeds matrix dimensions. Error in INTERFACE2>INTERFACE2_OpeningFcn (line 61) VARIABLE = varargin{1}; % amener la variable 'VARIABLE' du GUI 'INTERFACE1'
Merci bien !
Partager