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 :

CallBack et boucle FOR


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut CallBack et boucle FOR
    Bonjour à tous,

    Imaginons un programme qui créé un graphe dans lequel sont disposé trois marqueurs : disons +, * et ^

    Je créé une boucle FOR correspondant au nombre d'objet à identifier (donc n=3 dans cet exemple).
    Avant la boucle, j'ai créé une interface à 3 pushbuttons dont le but est de choisir successivement le type de marqueur affiché. Soit quelque chose du genre :

    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 gui
    figure('units','pixels',...
        'position',[250 250 250 500],...
        'color',[0.925 0.913 0.687],...
        'numbertitle','off',...
        'menubar','non',...
        'name','Identification');
     
    uicontrol('style','pushbutton',...
        'units','normalized',...
        'position',[0.1 0.8 0.4 0.05],...
        'string','Marqueur *',...
        'callback','m_type=1;');
    uicontrol('style','pushbutton',...
        'units','normalized',...
        'position',[0.1 0.7 0.4 0.05],...
        'string','Marqueur o',...
        'callback','m_type=2;');
    uicontrol('style','pushbutton',...
        'units','normalized',...
        'position',[0.1 0.6 0.4 0.05],...
        'string','Marqueur ^',...
        'callback','m_type=3;');
    La boucle se présente comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i=1:1:3
    waitforbuttonpress
    % Faire une action en fonction de la valeur de m_type
    end
    Mon problème :
    La valeur de m_type ne change pas à chaque itération (en supposant que l'on clique sur un bouton différent à chaque fois)

    Du coup, j'effectue 3 fois la même action bien que je clique sur les différents boutons...
    Un coup de pouce ???

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    C'est le problème des callback déclarés sous forme de chaines de caractères : ils sont exécutés dans le workspace de base, et non de la fonction de l'interface.
    Préfère passer le handle d'une fonction qui contiendra le code de la boucle.

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut

    Dis comment, ça ne me paraît pas très clair ^^
    Pourriez-vous me donner un plus de détails ?

    Merci !

  4. #4
    Invité
    Invité(e)

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut
    Merci mais je l'avais déjà lu ! C'est d'ailleurs de cela que je me suis inspiré (même carrément plagié) pour mon interface gui.

    Mais je ne comprend pas bien comment passer par un handle de fonction et le relié à la boucle... Votre aide serait la bienvenue !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je ne t'ai pas dit de le relier à la boucle mais de mettre le code que tu as dans la boucle dans la fonction callback, et de supprimer ainsi la boucle.

Discussions similaires

  1. Callback dans une boucle for
    Par bellionth dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 18/06/2010, 09h42
  2. Réponses: 3
    Dernier message: 06/07/2004, 10h21
  3. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

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