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écuperer une donnée d'une fonction dans un GUI [Débutant]


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 9
    Par défaut Récuperer une donnée d'une fonction dans un GUI
    Bonjour,

    Je réalise un GUI pour la première fois et j'ai un petit problème.
    Mon GUI se compose de 2 text edit. Le premier où je rentre ma variable VAR et un second où je voudrais que s'affiche mon resultat RESULT.
    J'utilise la fonction FUNCTION pour calculer RESULT en fonction de VAR.
    Pour lancer le tout j'ai utiliser un PushButtom. Dans le Callback j'ai écrit les lignes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    VAR=get(handles.edit1,'string');
    VAR=str2double(VAR);
    RESULT= function( VAR );
    set(handles.edit2,'String',RESULT);
    Seulement, il apparait un message d'erreur sur la dernière ligne en me disant :

    "Invalid or deleted object."

    J'ai fait afficher RESULT (en enlevant le ";"), et j'obtiens bien un résultat numérique. J'imagine donc que lorsque j'écris mon RESULT ainsi il n'est pas sauvegardé dans le worksapce. J'ai regardé un peu partout mais je n'ai pas trouvé de solution.

    Quelqu'un pourrait-il m'aider ?
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Par défaut
    Bonjour,

    Pour commencer quelques petites remarques: Je te déconseille vivement de nommer une fonction "function" qui est déjà un mot clé sur matlab afin de définir une fonction.
    Deuxième remarque, si tu fais set(handles.edit2,'String',RESULT); il serait très judicieux de convertir result en string avant. voir la fonction num2str.

    Enfin, peux-tu mettre un point d'arrêt dans ton code à la ligne set(handles.edit2,'String',RESULT);, et nous dire ce que te renvoies get(handles.edit2); ainsi que RESULT dans la command window?

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 9
    Par défaut
    Merci pour votre réponse aussi rapide !

    J'ai changé le nom de ma fonction et de mes variables pour que mon explication semble plus claire mais elle a un nom différent.
    J'ai rajouté la ligne pour convertir RESULT en string.

    J'ai placé un break point à la ligne set(handles.edit2,'String',RESULT); J'ai ensuite taper get(handles.edit2) dans command windows. J'obtiens l'erreur suivante:

    Error using matlab.ui.control.UIControl/get
    Invalid or deleted object.
    
    Error in hggetdisp (line 4)
        v = get(h,sp);
    Lorsque je tappe RESULT, il me renvoie sa valeur numérique


    Remarque: Si à la place de ma fonction j'écris RESULT=6, j'ai bien un 6 qui apparait dans mon text edit 2.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Par défaut
    L'erreur t'indique que le handles.edit2 n'existe plus ou n'a jamais existé. Peux tu vérifier son tag dans ton guide? Manipules-tu le edit2 à un autre endroit de ton code?

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 9
    Par défaut
    Le tag de mon text edit est bien edit2. Je n'ai codé que dans la partie Callback du push buttom les lignes que j'ai écrites dans mon premier messages.

  6. #6
    Membre éclairé
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Par défaut
    Si ta fonction retourne bien une valeur numérique dans RESULT, tu as juste à transformer cela en une chaine de caractère pour l'afficher dans un edit text

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.edit2,'String',num2str(RESULT));

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/07/2013, 14h33
  2. Récuperation de données d'une feuille a une autre
    Par smartbis dans le forum VBA Word
    Réponses: 1
    Dernier message: 23/11/2007, 11h37
  3. Réponses: 4
    Dernier message: 22/05/2007, 14h42
  4. Réponses: 2
    Dernier message: 18/12/2006, 19h04

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