Pour les deux premiers points:
Utiliser l'unité
normalized
Exemple :
f = figure('Units','normalized','Position',[0.1 0.1 0.5 0.5]);
Et mettre aussi tous les objets enfants de la fenêtre en unité normalized
Une possibilité pour cela est d'utiliser
findobj de la façon suivante :
1 2 3 4
| %f etant le handle de la figure precemment creee
%findobj recherche ici tous les objets dans la figure f qui ont la propriete
%Units.
set(findobj(f, '-property', 'Units'), 'Units', 'normalized'); |
Tu peux faire cela directement sur GUIDE en ajustant les propriétés de ta figure et tes objets à l'aide de l'Inspector.
Pour ce qui est du dernier point "dynamique" (voire même les deux premiers), tu peux insérer le code dans les *_CreateFcn de tes objets. Il te faudra alors remplacer la ligne
f = figure('Units','pixels','Position',posFigure);
servant à créer ta figure par
set(hObject,'Units','pixels','Position',posFigure);
hObject étant le handle de l'objet correspondant passé par la fonction.
Partager