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 :

uicontrols et callback


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Par défaut uicontrols et callback
    Bonjour,

    J'utilise 2 pushbuttons qui appellent une meme fonction callback. Est-ce qu'il y a un moyen depuis ma fonction callback de savoir quel pushbutton a été sélectionné?

    Merci

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Oui c'est possible.

    Utilises-tu GUIDE ou une interface codée "à la main"?

    Avec GUIDE, pour avoir l'identifiant du bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    get(hObject, 'Tag')
    Sinon ca dépend comment tu l'as codé...

    Bonne journée,
    Duf

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Par défaut
    Je code a la main.

    Je definis les pushbuttons comme suit:
    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
     
    UICONTROLS(88).id = 88;
    UICONTROLS(88).style = 'pushbutton';
    UICONTROLS(88).step = 'PREFERENCES';
    UICONTROLS(88).visible = 'off';
    UICONTROLS(88).handleVisibility = 'on';
    UICONTROLS(88).string = 'Color for background';
    UICONTROLS(88).fontSize = fontSizeText;
    UICONTROLS(88).font = fontText;
    UICONTROLS(88).fontWeight = 'normal';
    UICONTROLS(88).fontColor = colorBkgd;
    UICONTROLS(88).horizontalAlignment = 'center';
    UICONTROLS(88).backgroundColor = colorControls;
    UICONTROLS(88).enable = 'off';
    UICONTROLS(88).position = [0.02 0.89 0.3 0.05];
    UICONTROLS(88).callback = 'sj_PREFERENCES_selectColor';
    UICONTROLS(88).h = [];
    et ce UICONTROLS est une variable globale donc je peux y accéder depuis sj_PREFERENCES_selectColor. Je dois pouvoir utiliser gco et retrouver par rapport à la position apparemment?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    h = get(gco);
    pos = h.Position;
    et après je regarde quel uicontrol se trouve à cette position... C'est peut-etre de la bidouille je sais pas mais du moment que ca marche

  5. #5
    Membre émérite Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Par défaut
    salut
    ta fonction callback a nécessairement 2 arguments d'entrées que tu dois récupérer à un moiment ou un autre.
    l'un est la source du callback.
    il te suffit de contrôler un propriété qui diffère (mais je choisirais une propriété plus "stable" que la position que tu pourras être amené à modifier au cours de ton développement).
    la source du callback peut aussi être récupérée par gcbo. gco doit marcher aussi dans la plupart des cas d'utilisation mais on ne sait jamais, mieux vaut l'éviter je pense.
    tu peux écrire aussi directement pour reprendre l'exemple de Duf42 car même si tu ne programmes pas avec GUIDE c'est intéressant d'ajouter un tag à tes uicontrol qui est une bonne propriété pour ce genre de test.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/04/2015, 14h43
  2. compatibilité POO avec un callback dans un uicontrol
    Par oodbae_adriano dans le forum MATLAB
    Réponses: 2
    Dernier message: 08/08/2011, 15h33
  3. Gui et ' Error while evaluating uicontrol Callback'
    Par Lohique dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 04/06/2010, 10h31
  4. [Débutant] Récupération variable retournée par fonction via 'callback' dans un uicontrol
    Par Luis Vieira da Silva dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 05/05/2010, 11h27
  5. [MFC] Un callback dans des MFC ...
    Par elsargento dans le forum MFC
    Réponses: 3
    Dernier message: 18/02/2004, 16h04

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