Bonjour à tous,
J'ai déjà posté quelque chose à peu près sur le même sujet récemment, mais je ne trouve pas de solution qui fitte avec mon problème.
Voilà donc un nouveau post pour le présenter de manière plus précise.
Tout d'abord je définis une fenetre avec des uicontrol de types différents :
- Un slider
- Et d'autres de type 'text' ou 'edit' dont certains sont donnés dans une boucle, comme vous pouvez le voir dans le code suivant :
Et ensuite j'essaie de modifier la position des uicontrol en fonction de la position du slider, dans la fonction Callback correspondante :
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 fenetre=figure; set(fenetre,'position',[20,50,460,680]); set(fenetre,'Name','Plage de variation des variables'); set(fenetre,'menubar','none'); handles.slider=uicontrol(fenetre,'style','slider','min',0,'max',100,'position',[435,20,20,640],'value',100,'Callback',@Plot_GUI_variables); handles.indices=100; position=((650-(650+nombre_variables*(28+22)))/100)*handles.indices+(650+nombre_variables*(28+22)); handles.text1=uicontrol(fenetre,'style','text','position',[9,position,100,22],'string','Variable','fontsize',12,'fontweight','bold'); handles.text2=uicontrol(fenetre,'style','text','position',[115,position,220,22],'string','Varie entre... et ...','fontsize',12,'fontweight','bold'); for i=1:nombre_variables position=position-28; handles.text=uicontrol(fenetre,'style','text','position',[9,position,100,20],'string',i,'fontsize',10); handles.edit1=uicontrol(fenetre,'style','edit','position',[115,position,109,22],'string','xxx'); handles.edit2=uicontrol(fenetre,'style','edit','position',[225,position,109,22],'string','xxx'); end position=position-28; handles.bouton1=uicontrol(fenetre,'style','push','position',[336,500,100,40],'string','Continuer','callback','saisie_elements','fontsize',12); guidata(fenetre,handles)
Comme vous le voyez, j'essaie de modifier la position des uicontrol dans une boucle, car je n'ai pas donné de nom précis à chacun des uicontrol créés précédemment. Je ne sais même pas combien j'en ai dans la figure.
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 function Plot_GUI_variables(hObject,eventdata) global nombre_variables fig = get(hObject,'parent'); handles = guidata(fig); handles.indices = get(hObject,'Value'); position=((650-(650+nombre_variables*(28+22)))/100)*handles.indices+(650+nombre_variables*(28+22)); set(handles.text1,'position',[9,position,100,22]); set(handles.text2,'position',[115,position,220,22]); for i=nombre_variables position=position-28; set(handles.text,'position',[9,position,100,20]); set(handles.edit1,'position',[115,position,109,22]); set(handles.edit2,'position',[225,position,109,22]); end position=position-50; set(handles.bouton1,'position',[150,position,100,40]); guidata(fig,handles)
Evidemment, le déplacement de ces uicontrol pose problème et ne fonctionne pas tel quel dans la boucle.
Pouvez vous m'aider ? Sauriez vous comment je pourrais résoudre ce problème ?
Merci beaucoup,
Bien cordialement,
Noëlie
Partager