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 :

récupération du choix dans un popupmenu apres clik sur start


Sujet :

Interfaces Graphiques

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 77
    Points : 38
    Points
    38
    Par défaut récupération du choix dans un popupmenu apres clik sur start
    Bonjour

    J'ai un petit problème. Je vous explique d'abord mon objectif.
    L'utilisateur doit choisir dans un bouton popup s'il veut faire une régulation en P,Pi...
    Et ensuite appuyé sur start, et le programme doit déssiner sur l'axes1 le choix voulu.

    Tout d'abord j'ai essayé que l'orsque l'on clique sur la fonction P(par exemple), que la courbe s'affiche. Résultat obtenu dans une autre discution.

    Mais maintenant je voudrai que celui ci le fasse apres le choix de l'utilisateur, donc que l'utilisateur click sur PI(par exemple) (rien ne se passe) et lorsqu'il click sur start, la fonction se lance.
    j'ai tenté par des if, des switch...

    J'ai demandé de l'aide a un copain, et nous avons rien reussi.

    Je vous envoie le programme qui fonctionne sans le bouton start :

    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
     
    % --- Executes on selection change in Choix_du_mode.
    function Choix_du_mode_Callback(hObject, eventdata, handles)
     
    %Simulation dessin courbe
    X=[1:4];
    handles.var{1}= sin(X+4);
    handles.var{2}= 2*X*1;
     
     
    val = get(hObject,'Value');
    if Valider_choix==1
     
    switch val
     
        case 1
    handles.current_data=1;
     
        case 2
     handles.current_data=2;
     
    end
     
    end
    plot(handles.axes1,handles.var{handles.current_data},'r');
    guidata(hObject, handles);
    et maintenant celle avec le pushbutton(qui s'appélera start quand il sera transférer sur mon fichier original), qui ne fonctionne pas(comme vous pourez le voir, beaucoup de changement réalisé...

    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
     
    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    X=[1:4];
    handles.var{1}= sin(X+4);
    handles.var{2}= 2*X*1;
     
    if x==1
    plot(handles.axes1,handles.var{1},'r');
    else
    plot(handles.axes1,handles.var{2},'r');
     
    end
     
     
     
     
     
     
    % --- Executes on selection change in popupmenu1.
    function popupmenu1_Callback(hObject, eventdata, handles)
    val = get(hObject,'Value');
    switch val
     
        case 1
    x=1
     
        case 2
     x=2
     
    end
    Je vous remercie de votre aide, en attendant je continue mes recherches

  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
    Les variables ne sont pas connues d'une fonction à l'autre (voir Quelle est la durée de vie des variables ?)

    Tu peux tout simplement supprimer le Callback du popupmenu et récupérer sa valeur dans le callback de ton pushbutton.

    Pour cela comme je suppose que tu as utilisé GUIDE tu peux récupérer le handle du popupmenu avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handles.<tag du popupmenu>
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 77
    Points : 38
    Points
    38
    Par défaut
    Bonjour

    Oui je sais que les variables ne sont pas compatibles d'un fichier a l'autre, le premier fichier, c'est mon principale, et l'autre juste un fichier test. apres j'adapte les variables...

    Je vais essayer de programmer avec le" handles.<tag du boutton>"

    Merci pour l'aide. Si ça marche j'enverrai mon programme pour les prochain..

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 77
    Points : 38
    Points
    38
    Par défaut
    Hé ben comme convenu voila mon code avec la modification.Je pensais pas que c'était aussi simple.
    Il suffisait juste de tout copier dans le bouton start, et de lui assigné le handles du popup comme dit par caro-line

    En rouge la modif a faire

    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
    
    % --- Executes on button press in start.
    function start_Callback(hObject, eventdata, handles)
    
    %Simulation dessin courbe
    X=[1:4];
    handles.Y{1}= sin(X+4);
    handles.Y{2}= 2*X*1;
    
    
    val = get(handles.Choix_du_mode,'Value');
    
        
    switch val
        
        case 1
    handles.X=1;
    
        case 2
     handles.X=2;
    
    end
    
    
    plot(handles.axes1,handles.Y{handles.X},'r');
    guidata(hObject, handles);
    Je te remercie beaucoup pour ton aide, l'avantage d'être guidé, c'est qu'après on a la satisfaction lorsque ça fonctionne

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2015, 09h32
  2. [XL-2007] Suppression choix dans liste déroulante après sélection
    Par Berseker7 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/06/2014, 21h20
  3. Récupération de données dans un fichier pour copie sur une feuille
    Par Maxime082 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 19/05/2011, 19h41
  4. Réponses: 1
    Dernier message: 22/04/2007, 14h50
  5. Ouvrir un pop-up après choix dans un select.
    Par JackBeauregard dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/11/2006, 18h11

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