Bonjour à tous,

J'ai beau fouiller sur le forum, ou essayer de m'inspirer des réponses qui se rapprocheraient de mon problème, je ne trouve pas de solution, j'espère donc que vous pourrez m'aider. Je vais tenter d'être la plus claire possible.

J'ai utilisé GUI pour que mon programme, lorsqu'il se lance, affiche deux listes en popup, pour lesquelles il faudra choisir deux paramètres. J'ai également rajouté un bouton OK pour que quand l'opérateur clique dessus, la fenêtre se ferme et le programme sorte les deux paramètres sélectionnés.

Là où ça se corse, c'est quand il faut rajouter du code dans le programme pour lui faire comprendre tout ça. J'ai réussi à extraire les données sélectionnées par l'opérateur grâce à a content{get(...)}, mais je n'arrive pas à lui faire comprendre que lorsque l'opérateur clique sur OK, il faut fermer la fenêtre et stocker les deux paramètres en sortie.

Voici mon programme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
function varargout = choix_substrat(varargin)
 
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @choix_substrat_OpeningFcn, ...
                   'gui_OutputFcn',  @choix_substrat_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
% --- Executes just before choix_substrat is made visible.
function choix_substrat_OpeningFcn(hObject, eventdata, handles, varargin)
 
handles.output = hObject;
 
% Update handles structure
guidata(hObject, handles);
 
% UIWAIT makes choix_substrat wait for user response (see UIRESUME)
% uiwait(handles.figure1);
 
% --- Outputs from this function are returned to the command line.
function varargout = choix_substrat_OutputFcn(hObject, eventdata, handles) 
 
% Get default command line output from handles structure
varargout{1} = handles.output;
 
% --- Executes on selection change in popup_nature.
function a=popup_nature_Callback(hObject, eventdata, handles)
 
 
contents{get(hObject,'Value')}  %returns selected item from popup_nature
 
% --- Executes during object creation, after setting all properties.
function popup_nature_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
% --- Executes on selection change in popup_epaisseur.
function b=popup_epaisseur_Callback(hObject, eventdata, handles)
 
contents = cellstr(get(hObject,'String')) %returns popup_epaisseur contents as cell array
contents{get(hObject,'Value')} %returns selected item from popup_epaisseur
 
% --- Executes during object creation, after setting all properties.
function popup_epaisseur_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
% --- Executes on button press in OK_pushbutton.
function OK_pushbutton_Callback(hObject, eventdata, handles)
% hObject    handle to OK_pushbutton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
Je pense qu'il faut ajouter quelque chose au callback du pushbutton OK, mais je ne vois pas quoi. de même, j'ai un peu de mal à comprendre comment associer les paramètres sélectionnés dans la popup à une variable de sortie du programme.

Si quelqu'un pouvait m'aider, je lui en serai éternellement reconnaissant !
Merci beaucoup