Bonjour,
je voudrais lorsque je clique sur un radio bouton que certaine edit soit disponible et pas toutes.
Je sais qu'il faut passer par la fonction enable du bouton edit.
des infos?
a+
Bonjour,
je voudrais lorsque je clique sur un radio bouton que certaine edit soit disponible et pas toutes.
Je sais qu'il faut passer par la fonction enable du bouton edit.
des infos?
a+
Ben le principal c'est de savoir comment sont stockés les handles de tes edit.
Si tu as utilisé GUIDE, ils sont tous dans la structure handles sous la forme :
handles.edit1 si edit1 est le tag de l'un de tes edit.
Après tu te construis tes 2 vecteurs : un avec les handles des edit à mettre à on et l'autre pour les off :
ou alors juste un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 set(vecteurHandlesEditOn,'enable','on'); set(vecteurHandlesEditOff,'enable','off');
Mais le plus gros travail c'est surtout de savoir construire ton vecteur et ça ça dépend vraiment de comment tu as construit tes objets.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 set(findall(handleFigure,'style','edit'),'enable','on');%tous à 'on' set(vecteurHandlesEditOff,'enable','off');%sauf ceux-là
Voila j'ai ce code la, en partie car toutes les fonctions ne sont pas là et tout les edit, les radiobutton non plus.
le code ci-dessus est dans une fonction initialisation. Ensuite, l'utilisateur fait un choix avec des radiobutton et la je veux que certain edit soit enable et d'autre non. ensuite l'utilisateur appuie sur le pushbutton OK et le traitement se fait via un une fonction nommée filtre.
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 unction choix_filtre(action, varargin) if nargin<1 action='initialisation'; end; feval (action,varargin{:}); return; function [bw,boutonthresh,boutonsigma] = initialisation() imgini = imread('c:\test.bmp') img=rgb2gray(imgini) f1 = figure; colormap(gray); maximize(f1); screensize = get(0,'screensize') % Radio bouton cb='set(findobj(''style'',''radio''),''value'',0);set(gcbo,''value'',1)'; boutongaussien = uicontrol('style','radio','position',[screensize(3)/64 screensize(4)/2.5 200 40],'string','Filtre Gaussien (thresh,sigma)','tag','gaussien','callback',cb) boutonaverage = uicontrol('style','radio','position',[screensize(3)/64 screensize(4)/2.73 200 40],'string','Filtre Average (thresh)','tag','average','callback',cb) %Push bouton boutonOK = uicontrol('Style', 'pushbutton', 'String', 'Application du filtre',... 'Position', [screensize(3)/4 200 screensize(3)/2 50],'Callback',@filtre); % Edit Bouton boutonthresh = uicontrol('Style', 'edit','BackgroundColor','white','Position', [screensize(3)/1.2 screensize(4)/3 100 20],'tag','thresh'); boutonsigma = uicontrol('Style','edit','BackgroundColor','white','Position', [screensize(3)/1.2 screensize(4)/2.6 100 20],'tag','sigma');
Bon...
1er conseil utiliser soit un vecteur, soit une structure pour conserver les handles de tes edit.
ex :
Bien maintenant que tu as récupéré tes handles y'a plus qu'à changer la propriété enable sur ceux qui t'intéresse.
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 %sol° vecteur vecEdit(1)=uicontrol(...); vecEdit(2)=uicontrol(...); %Defaut : il faut te souvenir des indices... %sol° structure editHandles.thresh=uicontrol(...); editHandles.sigma=uicontrol(...); %ce que je préfère, ceci dit si tu as utilisé GUIDE, les handles sont déjà %enregistré dans une structure que tu dois pouvoir récupérer avec guihandles %il me semble %Puis enregistrer cette info pour pouvoir la récupérer dans un autre %environnement (par ex le callback de tes radiobuttons) : setappdata(0,'mesHandlesEdit',vecteur); %ou setappdata(0,'mesHandlesEdit',editHandles); %=>Utiliser getappdata pour récupérer les valeurs %c'est ma solution préférée mais il en existe d'autres ;) %Et sinon il y a toujours moyen sans faire tout ça de récupérer les handles à %partir d'infos spécifiques, en général le tag : hEdit = findobj(handleFigure,'tag','thresh'); %Perso j'aime moins car on ne sait jamais si le tag est unique...
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 editHandles=getappdata(0,'mesHandlesEdit');%recup des handles set(editHandles.thresh,'enable','on'); set(editHandles.sigma,'enable','off');
merci caro95470 pour ton aide c OK maintenant
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager