Bonjour,

Je suis en train de faire une interface avec Matlab mais j'aurais voulu avoir une liste d'objets qui seraient mise à jour à chaque opération avec une fonction de rafraichissement de l'interface mais mon problème est de gérer les fonctions callback dans ce cas. Je m'explique:

Dans un fichier GUI_uicontrols je crée ma liste d'objets de l'interface comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
function GUI_uicontrols
 
global UICONTROLS
 
UICONTROLS(5).style = 'pushbutton';;
UICONTROLS(5).visible = 'on';
UICONTROLS(5).handleVisibility = 'on';
UICONTROLS(5).string = 'CLICK HERE';
UICONTROLS(5).enable = 'on';
UICONTROLS(5).position = [0.4 0.91 0.1 0.05];
UICONTROLS(5).callback = 'go';
et tous mes autres objets seront aussi stockés dans cette liste.

Ensuite j'ai une fonction pour mettre l'interface à jour:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function GUI_UpdateFigure
global UICONTROLS 
 
for i = 1:size(UICONTROLS,2)
        uc = uicontrol('style',UICONTROLS(i).style,...
                        'units','normalized',...
                        'position',UICONTROLS(i).position,...
                        'string',UICONTROLS(i).string,...
                        'callback',UICONTROLS(i).callback);
        set(uc,'enable',UICONTROLS(i).enable);
        set(uc,'handleVisibility',UICONTROLS(i).handleVisibility);
        set(uc,'visible',UICONTROLS(i).visible);
end
Mais voilà ca coince quand je veux appeler ma fonction callback 'go'.

Ou devrais-je définir cette fonction? Dans la fonction qui appelle updateFigure? ou directement dans updateFigure? Mais je ne peux pas définir toutes mes fonctions callback dans un même fichier à part?

Merci pour votre aide!