IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Discussion :

Rendre invisible un boutton


Sujet :

Interfaces Graphiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut Rendre invisible un boutton
    bonjour,

    je n'arrive pas a faire disparaitre un boutton dans mon interface.

    mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function radiobutton1_KeyPressFcn(hObject, eventdata, handles)
    % hObject    handle to radiobutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    if get(handles.radiobutton1,'value')
        set(handles.pushbutton3,'visible','off')
    else
        set(handles.pushbutton3,'visible','on')
     
    end

    j'ai essayer aussi sans les guillemet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set(handles.pushbutton3,'visible',off)
    set(handles.pushbutton3,'visible',on)
    mais ca ne marche pas!

    est ce que qlq un aura une idée?

    merci
    -----------------------
    Cordialement
    Developpeur82

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Bizarre...
    Essayes ça en ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    pb=uicontrol %ouvre une figure avec un bouton
    set(pb,'visible','off') %rend le bouton invisible
    Si ça marche c'est que le problème vient de ton code.
    Et puis "ça ne marche pas" ça veut dire quoi :
    il ne se passe rien ?
    il y a un message d'erreur ?

    Dans le 1er cas vérifie que tu passes bien dans ta condition en affichant la valeur du radio bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function radiobutton1_KeyPressFcn(hObject, eventdata, handles)
    % hObject    handle to radiobutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    get(handles.radiobutton1,'value')
    if get(handles.radiobutton1,'value')
        set(handles.pushbutton3,'visible','off')
    else
        set(handles.pushbutton3,'visible','on')
     
    end
    Ceci dit l'utilisation du KeyPressFcn ici me parait bizarre. A mon avis il ne passe jamais dedans...
    Utilise plutôt le callback.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rb=uicontrol('style','radio','callback','disp(get(gcbo,''value''))');
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    Merci!

    j'ai essayé ce que vous m'avais dit:

    en effet ca marche dans la fenetre de commande... Par conséquent, comme vous venez de dire, c que la syntaxe est placé au mauvais endroit!

    j'ai essayé de la mettre a l'exterieur (c a d en dehors de r1_KeyPressFcn)

    code:

    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
    % Choose default command line output for Interface
    handles.output = hObject;
     
    % Update handles structure
    guidata(hObject, handles);
     
    % UIWAIT makes Interface wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
     
    if get(handles.r1,'value')
        set(handles.pushbutton3,'visible','off')
    else
        set(handles.pushbutton3,'visible','on')
     
    end

    Par defaut r1 est choisi, donc en executtant le programme le boutton (''pushbutton3'') disparait comme souhaité...

    mais reste un probleme! c que en choisissant r2, r3 ou r4 le boutton ne reapparait pas!!

    je ne c pas pk...!!

    si vs auriez une idée je serai remerciant..

    Cordialement,
    -----------------------
    Cordialement
    Developpeur82

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    En fait, pour resumé ce qui est été dit, c que en changeant le choix de radiobutton, les grisage et les visibilité des objets ne changent pas. ca reste comme si c'était l'ancien choix (choix par defaut)

    merci
    -----------------------
    Cordialement
    Developpeur82

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    apres avoir bidouiller je me suis rendu compte que ca marche mais dans la fonction callback

    mais malheureusement je MATLAB ne genere qu'une fonction callback pour r2("radiobutton'') mais pour les 3 autres ("radiobutton'') MATLAB ne genere pas les fonction callback. et qd j'essaye de les rajout'e manuellement ca ne marche pas. Matlab ne les reconnait pas!!!


    si qlq un aura une idée je serai remerciant...
    -----------------------
    Cordialement
    Developpeur82

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    J'avoue que je n'utilise pas GUIDE, c'est bien pratique pour créer la figure mais après le code n'est pas pratique à modifier.

    Normalement au départ, il aurait dû te générer automatiquement tous les Callbacks...C'est bizarre.

    Un truc que tu peux essayer :
    • Rouvrir ta figure .fig avec GUIDE
    • Ouvrir le property inspector sur r2 => copier le callback
    • Ouvrir le property inspector sur les autres radio et coller le callback.
    • Enregistrer et tester.
    Règles du Forum

    Adepte de la maïeutique

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rendre invisible les valeurs passant par l'URL
    Par Jones dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/11/2004, 11h50
  2. [POO] Rendre invisible un objet Flash en Javascript
    Par tafkap dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/10/2004, 19h39
  3. Réponses: 10
    Dernier message: 19/05/2004, 15h44
  4. Comment rendre invisible un TTabbedNotebook.Pages ?
    Par Chonchon dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/04/2004, 20h14
  5. comment rendre invisible une FormStyle->fsMDIchild
    Par caluloa dans le forum C++Builder
    Réponses: 5
    Dernier message: 16/05/2003, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo