Problème GUI et visibilité des variables
Bonjour,
J'ai des problèmes, surement dus à une mauvaise compréhension, en utilisant les fonction guihandles et guidata.
Je précise que j'aimerais éviter les variables globales
Je déclare dans ma fonction principale une figure globale et une variable new_choix dans la structure data.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
function gui_simu
% Création de l'objet Figure (fenêtre principale de la gui)
figure('units','pixels',...
'position',[resol(3)*0.1,resol(4)*0.1,resol(3)*0.8,resol(4)*0.8],...
'color',[1.0 1.0 1.0],...
'numbertitle','off',...
'name','Simulateur d images US',...
'menubar','none',...
'tag','interface');
data=guihandles(gcf);
data.new_choix=0;
guidata(gcf,data); |
J'appelle ensuite une nouvelle fonction 'param_deplacement'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
function param_deplacement
y_top=0.3;
x_top=0.01;
dy=0.03;
dx=0.3;
% Titre général
% Création de l'objet Uicontrol popup-menu
uicontrol('style','popupmenu',...
'units','normalized',...
'position',[x_top y_top-dy dx/2*0.9 dy*2/3],...
'string','Flux parabolique|Translation',...
'callback',@choix_dep,...
'tag','bouton_popup_dep'); |
qui appelle une fonction 'choix_dep' via un callback sur un menu popup.
Mon problème se situe ici
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
function choix_dep(obj,event)
% Fonction appelée lors de l'utilisation du menu popup de choix de type de déplacement
data=guidata(gcbf)
choix=get(data.bouton_popup_dep,'value');
switch(choix)
case(1)
param_vaisseau
case(2)
param_lineaire
end |
Je ne vois pas data.new_choix que j'aimerais utiliser pour savoir si cette fonction choix_dep a déjà été appelée.
J'ai généralement du mal avec guihandles et guidata. Je ne comprends pas bien comment faire pour que tout ce qui est dans data soit visible tout le temps en appelant guidata(gcbf).
Merci de votre aide,
Adrien