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 :

Interface graphique et callback


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut Interface graphique et callback
    Bonjour,

    j'ai déjà fait mon interface graphique que j'ai fait avec le GUI de Matlab. Cependant le fichier. m me donne beaucoup de soucis. Je ne comprends pas grand chose aux callbacks .

    Je vous donne une idée de ce que je veux faire , ainsi , j'espère que vous pouvez me filer un coup de main.
    J'avais crée une fonction(avec matlab) qui contient 5 arguments (deux adresses(strings), et 3 valeurs décimales) . j'ai donc utilisé un push button et 5 edit text .

    je voudrais mettre mes arguments(valeurs ou adresses ) dans les edits texte et une fois que j'appuie sur le push_button , j'aimerais que la fonction s'implémente automatiquement . Mon problème est que je n'arrive pas à remplir les callback dans le fichier.m .
    j'ai regardé pas mal de posts qui m'ont pas dut out aidé .
    je vous prie de bien vouloir me filer un coup de main !

    Thank you in advance !

  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,

    L'important pour bien coder ton programme c'est de bien comprendre la gestion des variables dans MatLab (avec en particulier la structure 'handles'), pour celà je te conseille de lire et d'étudier
    Tutoriel pour la programmation d'interfaces graphiques

    et surtout

    Tutoriel pour développer un GUI efficace

    Bon courage,
    Duf

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut Problème sur les UI text
    En fait j'ai bien lu les tutoriels dont vous m'avez donné les adresses . je voudrais vous poser une question par rapport à l'exemple d'incrémentation. En fait, si on voulait faire en sorte que l'utilisateur mettre lui -même n'importe quel nombre qui sera par la suite incrémenté ou décrémenté , comment faudrait - il s'y prendre ?
    En d'autres termes, le nombre qu'on met dans le UI text puisse être pris en compte par les fonctions (retrancher ou ajouter ) comme paramètres d'entrée?

    Merci pour votre aide

  4. #4
    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,

    Si j'ai bien compris tu souhaiterais utiliser un nombre entré par l'utilisateur dans un edit?

    Si c'est ca il te "suffit" de récupérer grâce justement aux handles de ta fenêtre.
    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    handles = guidata(handles_de_la_fenetre);
     
    number = str2num(get(handles.edit, 'String'));
    Et il te suffit d'utiliser le nombre récupérer...

    Bon courage,
    Duf

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut Problème sur les UI text
    en fait, j'ai fait comme vous m'avez conseillé mais , ça marche pas . je vous fait voir mon code, ainsi, vous pouvez me corriger s'il vous plait. j'ai repris l'exemple donné dans le tutoriel tout en faisant quelques petites modifications :


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    function gui_var_globales
     
    % Définition de nCompteur et handles comme variables globales dans chaque fonction et sous-fonction
    % nCompteur : valeur courante du compteur (scalaire)
    % handles : identifiants des objets graphiques (vecteur)
    global nCompteur handles
     
    % Initialisation de la variable représentant la valeur courante du compteur nCompteur à 0
    nCompteur=6;
     
    % Création de l'objet Figure
    handles(1)=figure('units','pixels',...
        'position',[250 250 500 500],...
        'color',[0.925 0.913 0.687],...
        'numbertitle','off',...
        'name','[GUI] Utilisation des variables globales',...
        'menubar','none',...
        'tag','interface');
     
    % Création de l'objet Uicontrol Pushbutton -
    handles(2)=uicontrol('style','pushbutton',...
        'units','normalized',...
        'position',[0.1 0.1 0.1 0.05],...
        'string','-',...    
        'callback',@retrancher,...
        'tag','bouton-');
     
    % Création de l'objet Uicontrol Text résultat
      handles(4)=uicontrol('style','edit',...
        'units','normalized',...
        'position',[0.1 0.2 0.3 0.05],...
        'string','fichier 0',...
        'tag','resultat');
     
     
     
    handles=guidata(handles(1));
    l = str2num(get(handles.edit, 'String'));
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %FIN DE LA FONCTION PRINCIPALE%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %DEBUT DE LA SOUS-FONCTION RETRANCHER%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    function retrancher(obj,l)
     
    % Définition de nCompteur et handles comme variables globales dans chaque fonction et sous-fonction
    % nCompteur : valeur courante du compteur (scalaire)
    % handles : identifiants des objets graphiques (vecteur)
    global nCompteur handles
     
    % Diminution de la valeur de nCompteur
    l=l-1;
     
    % Actualisation de la propriété String de l'objet Uicontrol Text résultat
    set(handles(4),'string',num2str(l));
    Merci pour votre aide

  6. #6
    Expert confirmé
    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
    Par défaut
    Pourquoi avoir choisi la méthode avec les variables globales, c'est la plus déconseillée :
    Citation Envoyé par tutoriel
    L'utilisation des variables globales : bien que ce type de variable soit excessivement simple à utiliser, on tend toujours à proscrire leur utilisation. Leur totale visibilité constitue un risque majeur d'erreur de programmation si l'on ne prend pas bien soin d'assurer l'unicité de leur nom.
    Du coup là tu mélanges les variables globales et la méthode guidata/guihandles et forcément ça doit donner des résultats bizarres (je n'ai pas testé ton code).

    Ta variable l en l'occurrence n'est absolument pas passée en paramètre de ta fonction retrancher.
    Les paramètres des fonctions callback lorsque définie avec le @ sont fixes et définis par MATLAB.
    Il s'agit de :
    • obj : handle de l'objet courant
    • event : variable non utilisée (MATLAB se le réserve pour les futures versions)
    • handles : la structure handles générée par guidata

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

Discussions similaires

  1. radio button et callback dans une interface graphique
    Par hamzazerr dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 24/07/2013, 17h00
  2. Réponses: 2
    Dernier message: 29/03/2004, 18h29
  3. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55
  4. [Kylix] Interface graphique pour lognes de commande linux
    Par lecharcutierdelinux dans le forum EDI
    Réponses: 6
    Dernier message: 29/08/2003, 10h20
  5. plugin interface graphique
    Par jocelyn dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 13/08/2003, 09h49

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