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 :

Affichage dans zone texte


Sujet :

Interfaces Graphiques

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Affichage dans zone texte
    Bonjour,

    J'ai fait ceci pour créer ma zone texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    % créer un label texte pour afficher l'intervalle
    hlabel3 = uicontrol(f, ... % on crée un objet 'interface utilisateur' dans la fenetre f
    'Style', 'text', ... % de type label (texte non modifiable)
    'Position', [10 30 100 25]);
    puis ceci pour afficher la valeur de z :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function afficher_prod
    global hlabel3
    % récupérer la valeur de z
    z = get(z, 'Value');
    % créer une représentation de de la valeur sous forme texte
    texte = sprintf('z');
    % afficher l'intervalle dans le label
    set(hlabel3, 'String', texte);
    % appeler la fonction de tracé
    tracer_fonction_ex4
    Alors il n'y a ni message d'erreur, ni affichage à l'écran...
    Une idée?
    Images attachées Images attachées  

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

    J'aurais deux questions:
    • Sans lien avec le problème, mais je remarque que ta variable hlabel3 est globale, qu'en est-il de z qui n'a pas l'air d'être déclarée?
    • De quelle façon est appellée la fonction afficher_prod?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Oui elle est global car elle est appelée dans mon fichier principal aussi.
    Je n'avais pas déclaré la variable z...petit oubli

    Et pour l'appel de la fonction je comptais le faire comme ceci (à la manière d'un popmenu) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    hlabel3 = uicontrol(f, ... % on crée un objet 'interface utilisateur' dans la fenetre f
    'Style', 'text', ... % de type label (texte non modifiable)
    'Position', [10 30 100 25]);...
    'Callback','afficher_prod');
    Mais ça ne fonctionne pas.

    Faut il simplement faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function afficher_prod_ex4
    global hlabel3 u
     
    texte = sprintf('str');
    % afficher l'intervalle dans le label
    set(hlabel3, 'String', texte);
    % appeler la fonction de tracé
    tracer_fonction
    sachant que je défini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    t=0:1/365:12;
    %z = trapz(t,y);
    z = 1/365*trapz(y);
    z=z*277762/1000
    str = num2str(z)
    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tu ne peux pas définir un Callback pour un objet de type text (cf Présentation des objets graphiques).
    De plus, préfère la syntaxe 'callback',@maFonctionCallback aux guillemets; la définition de ta fonction sera alors de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function maFonctionCallback(hObject,eventdata)
    avec
    • hObject: le handle de l'objet auquel le callback est associé
    • eventdata: autres infos qui dépendent des différents objets et callbacks.

    Ou 'callback',@(obj,evnt) maFonctionCallback si tu ne veux pas d'argument d'entrée.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Ok, pour le callback d'un objet de type text.
    Mais on peut bien associé un callback pour un objet de type edit?!

    Je fais afficher str dans Matlab :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    z = 1/365*trapz(y);
    z=z*10651/1000;
    str = num2str(z)
    Il me retourne une valeur de type caractère.
    Comment la faire afficher dans mon objet edit?
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function afficher_prod
    global hlabel3 
    %créer une représentation de de la valeur sous forme texte
    texte = sprintf('       ?       ',str);
    set(hlabel3, 'String', texte);
    Création de l'objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    % créer un label texte pour afficher l'intervalle
    hlabel3 = uicontrol(f, ... % on crée un objet 'interface utilisateur' dans la fenetre f
    'Style', 'edit', ... % de type label (texte non modifiable)
    'Position', [10 10 90 25],...
    'Callback','afficher_prod');

    En fait qu'est ce que je dois mettre dans texte = sprintf(' ? ',str); ?

    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je ne comprends pas l'intérêt de faire une telle opération: le callback d'un edit est appellé lorsque tu modifies son contenu, donc afficher derrière quelque chose...
    Je ne connais pas le contexte, mais je mettrais cette opération dans l'évènement qui effectue un changement de la valeur de z.

    Pour ce qui est de l'affichage, tu as deux façons de faire:

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Oui , tout simplement!
    Merci pour cette réponse!

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

Discussions similaires

  1. Affichage variable zone text SANS GUI
    Par Crocher dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 27/05/2011, 21h53
  2. [WD14] Probleme affichage dans Zone Répétée
    Par mero007 dans le forum WinDev
    Réponses: 21
    Dernier message: 31/07/2009, 11h28
  3. [AC-2003] probleme d'affichage dans zone texte
    Par chuspyto dans le forum IHM
    Réponses: 3
    Dernier message: 31/03/2009, 17h37
  4. récupération données dans zone texte
    Par meldja dans le forum IHM
    Réponses: 5
    Dernier message: 15/03/2009, 14h37
  5. Affichage dans zone de liste.
    Par moilou2 dans le forum IHM
    Réponses: 3
    Dernier message: 15/09/2008, 19h03

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