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 :

entrer une variable dans l'interface pour le programme


Sujet :

Interfaces Graphiques

  1. #21
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 8
    Points
    8
    Par défaut
    't' ce n'est rien. Je mets directement uicontrol
    HandleDelobjet je ne sais pas ce que c'est.
    La premiere ligne pour centr est fausse je dois garder que la 2eme
    Et ce qui ne s'affiche pas sur l'interface mais dans matlab c'est la matrice centr

  2. #22
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par caro95470 Voir le message
    As-tu lu les tutoriels sur les GUI pour voir quels objets tu pouvais utiliser :
    Les tutoriels en français sur les Interfaces Graphiques
    Je crois que tu devrais commencer par écouter le conseil de Caro
    Commence par développer une interface plus simple plutôt que de directement t'attaquer à ton vrai problème.

    Parce que cette discussion ne mène à rien, faute d'explications claires de ta part et de réponses précises de la nôtre

  3. #23
    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 : 40
    Localisation : France

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

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

    1 et 2 - Je crois que t et HandleDelobjet sont finalement la même chose ce qui voudrais dire que ta ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handleDeLobjet,'String',centr);
    n'a pas l'air très utile puisque tu fais sensiblement la même chose juste en dessous (enfin je crois).

    3 - Dans ce cas, tu devrais la supprimer, ca simplifierait ton code.

    4 - centr s'affiche sur l'interface car tu n'as pas mis de ';' à la fin de ton calcul et je pense que ca irais peut-être mieux (à valider) si tu faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     t=uicontrol(gcf,...
    'style','text',...
    'position', [10 10 150 120],...
    'string', num2str(centr));
    Voilà, j'espère que j'ai pu t'aider,

    Bon courage,
    Duf

  4. #24
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 8
    Points
    8
    Par défaut
    Merci pour votre aide.
    La matrice 'centr' ne s'affiche pas sur l'interface et matlab m'affiche lerreur suivante :
    t =

    Area: 6163
    Centroid: [261 97]

    ??? Undefined function or variable 'centr'.

    Error in ==> essai2>image1 at 116
    t=uicontrol(gcf,...

    ??? Error while evaluating uicontrol Callback

  5. #25
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    La MatLab te dis qu'il ne connait pas la variable 'centr', ce qui est fortement étrange vu que tu la calcules juste au dessus. Tu es sur qu'il n'y a pas un 'clear' ou que tu changes pas de fonction entre deux? Dans ce cas il faut juste lui transmettre la variable 'centr' et ca devrait fonctionner...

    Duf

  6. #26
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 8
    Points
    8
    Par défaut
    grâce à votre aide j'arrive maintenant à afficher les centroid sur l'interface.
    Maintenant je souhaiterais récupérer les 2 valeurs des centroid dans les 2 fonctions et les utiliser dans une troisieme fonction. Comment puis-je faire pour récupérer ces valeurs??

  7. #27
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 78
    Points : 61
    Points
    61
    Par défaut
    il faut que tu declares les deux variables centroides comme variables globales ( pour étre connues dans les trois fonctions)

    ex : au lieu de nommer tes variable cenroide1 centroide2 il faut les renommer handles.centroide1 et handles.cenroide2, en suite tu peux les appler ou tu veux dans tes fonctions.

  8. #28
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par Truth Voir le message
    il faut que tu declares les deux variables centroides comme variables globales ( pour étre connues dans les trois fonctions)
    Ce n'est pas la meilleure solution => Développement efficace des interfaces graphiques

  9. #29
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 8
    Points
    8
    Par défaut
    Si je déclare mes variables au départ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function gui_nested_func
    t=0;
    centroid_1=0;
    centroid_2=0;
    Après je déclare tous mes handles.
    Puis j'entre dans la premiere fonction qui me récupère et m'affiche centroid_1
    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
     
    axes (handles(7));
            imshow(I, 'InitialMagnification', 'fit')
            hold on
            for k = 1:numel(s2)
                centroid_1 = s2(k).Centroid; 
            end
     
            hold off
          t=s(1);
         a=uicontrol(gcf,...
        'style','text',...
        'position', [560 490 100 20],...
        'string',num2str(centroid_1));
        end
    Puis pareil pour la deuxieme fonction où je récupère la valeur de centroid_2

    Et enfin avec la fonction 'speed' je voudrais aficher la valeur de 'distance' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      function speed %(obg,event)
     
            resI = 1;  % Resolution suivant les lignes
            resJ = 1;  % Resolution suivant les colonnes
     
          distance = norm((t.Centroid_1-t.Centroid_2).*[resI resJ]); 
          a=uicontrol(gcf,...
        'style','text',...
        'position', [560 390 100 300],...
        'string',num2str(distance));
     
        end;
    Mais ca m'affiche l'erreur suivante et ne me retourne pas la valeur de 'distance' :
    ??? Error using ==> essai2>speed
    Too many input arguments.

    ??? Error while evaluating uicontrol Callback

  10. #30
    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
    Enlève le % là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function speed %(obg,event)
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function speed(varagin)
    varargin c'est pour ne pas se compliquer la vie vu que tu n'utilises de toute façon pas les entrées par défaut de speed.

  11. #31
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 8
    Points
    8
    Par défaut
    Je viens d'essayer et rien ne s'affiche sur l'interface et matlab me renvoie la meme erreur et lorsque je tape 'distance' dans matlab il me dit variable indéfinie

  12. #32
    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
    Pardon, erreur de typo (mais tu aurais pu aussi trouver par toi-même) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function speed(varargin)

  13. #33
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 8
    Points
    8
    Par défaut
    C'est vrai j'aurais pu le voir désolé!

    Matlab me retourne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ??? Reference to non-existent field 'Centroid_1'.
     
    Error in ==> essai2>speed at 185
          distance = norm((t.Centroid_1-t.Centroid_2).*[resI
          resJ]);
     
    ??? Error while evaluating uicontrol Callback
    Alors que j'ai declaré centroid_1 et centroid_2 en variables globales

  14. #34
    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
    Essaye de comprendre le message d'erreur.
    Il te dit qu'il ne connait pas de champ nommé Centroid_1.
    Cela fait référence à une structure; en l'occurence ici la structure t (tu sais la variable t : je t'avais demandé ce que c'était et tu avais dit qu'elle ne servait à rien )

    Il y a donc une différence entre t.Centroid_1 et centroid_1 : ce ne sont pas les mêmes variables.

  15. #35
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 8
    Points
    8
    Par défaut
    Je c'est bien mais pour calculer la valeur' distance' je la calcul comme étant l'hypoténuse et vous m'aviez donné ca avec t qui correspond au contour 1 soit t=s(1)

Discussions similaires

  1. [Débutant] Insérer une variable dans l'interface
    Par Ma29200 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 15/02/2012, 13h08
  2. Problème avec le paramètrage d'une variable dans un lien pour un panier
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/09/2011, 13h07
  3. [MySQL] Problème avec la récupération d'une variable dans un lien pour un panier
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 23/06/2011, 13h58
  4. Entrer une variable dans une commande déja lancée
    Par Druks8 dans le forum Débuter
    Réponses: 6
    Dernier message: 18/02/2009, 12h55
  5. Réponses: 5
    Dernier message: 17/06/2006, 21h13

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