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 :

variables globales dans le gui


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Par défaut variables globales dans le gui
    J'aimerais savoir comment fonctionne les variables globales???
    J'ai déclaré mes variables avec le mot clé global au début du guide dans la 1ere fonction pour les initialisés avant l'ouverture de l'interface

    Ensuite je veux les utiliser dans un callback d'un bouton mais il me dit que mes variables ne sont pas définies comment faire?

  2. #2
    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
    Quelques réponse dans :
    Quant à mon avis personnel les variables globales c'est mal
    Surtout dans une IHM utilise plutôt les fonctions GUIDATA et GUIHANDLES, c'est quand même plus efficace et plus pratique.
    Bonne lecture

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Par défaut
    Le probleme est que je n'ai pas créer mes objet moi meme.Est ce que je peux utiliser quand meme ces fonctions?

  4. #4
    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
    Citation Envoyé par lince102 Voir le message
    Le probleme est que je n'ai pas créer mes objet moi meme.
    Je ne comprends pas ce que tu veux dire par là...

    Citation Envoyé par lince102 Voir le message
    Est ce que je peux utiliser quand meme ces fonctions?
    Oui bien sûr. Si tu as besoin d'aide, tu peux nous montrer un bout de ton code, là où tu veux les créer, et là où tu veux les utiliser.

  5. #5
    Invité de passage
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Par défaut claus_b
    En effet une variable globale est une variable qui s’écrit :
    Exemple
    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
    %%%%%%%%%%%
    function micros_Callback(hObject, eventdata, handles)
    % hObject    handle to micros (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Hints: get(hObject,'String') returns contents of micros as text
    %        str2double(get(hObject,'String')) returns contents of micros as a double
          handles.pasm = (get(hObject, 'string'));
        handles.var_x =50;
        handles.var_y =[1 30];
        var=25;
     
        guidata(hObject, handles);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Ici les variables : handles.var_x, handles.var_y sont de variables globales : Pourquoi ?
    Parce que chacune des variables commence avec « handles. »

    Par exemple la variable « var » n’est pas une variable. Pourquoi ? Parce qu’elle ne commence pas avec « handles. »

    Si ensuite tu veux utiliser les variables : handles.var_x, handles.var_y tu peux bien sur, mais la variable var tu peux pas parce que elle , la variable « var » n’est pas globale. Elle est utilisé seulement pour fonction : micros_Callback


    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     function micVV_Callback(hObject, eventdata, handles)
    % hObject    handle to micros (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Hints: get(hObject,'String') returns contents of micros as text
    %        str2double(get(hObject,'String')) returns contents of micros as a double
          handles.vert = (get(hObject, 'string'));
     
        handles.uit = handles.var_x+handles.vert;
        handles.tt = handles.var_y;
     
          guidata(hObject, handles);
    Un choses très importante est que après une fonction où tu déclares une variable globale doit impérativement mettre le « guidata(hObject, handles) » qui fait une mise à jour pour les variables globales :

    Par example:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     function micros_Callback(hObject, eventdata, handles)
     
        handles.pasm = (get(hObject, 'string'));
        handles.var_x =50;
        handles.var_y =[1 30];
        var=25;
     guidata(hObject, handles);
     
    function micVV_Callback(hObject, eventdata, handles)
     
          handles.vert = (get(hObject, 'string'));
     
        handles.uit = handles.var_x+handles.vert;
        handles.tt = handles.var_y;
    Les variables globales qui peuvent être utilisé ensuite sont :

    handles.var_x
    handles.var_y

    Pourquoi? Parce que il y a aussi les variables handles.uit et handles.tt qui sont des variable globales.
    C’est vrai handles.uit et handles.tt sont de variables globales mais elles ne sont pas mises en jour.

    Si on écrit comme ça :

    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
     function micros_Callback(hObject, eventdata, handles)
     
        handles.pasm = (get(hObject, 'string'));
        handles.var_x =50;
        handles.var_y =[1 30];
        var=25;
     guidata(hObject, handles);
     
    function micVV_Callback(hObject, eventdata, handles)
     
          handles.vert = (get(hObject, 'string'));
     
        handles.uit = handles.var_x+handles.vert;
        handles.tt = handles.var_y;
        guidata(hObject, handles);
    Les variables globales maintenant sont:

    handles.var_x
    handles.var_y
    handles.uit
    handles.tt
    Les deux dernières sont maintenant variable globales utilisables parce que elles ont été ajouté es (mises à jour) comme des variables globales au moyen de « guidata(hObject, handles) ».
    J’espère que tu es maintenant eclairée sur ce sujet.

  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
    Citation Envoyé par c_badulescu Voir le message
    En effet une variable globale est une variable qui s’écrit :
    Je pense que tu es en train de tout mélanger.
    Une variable globale au sens MATLAB du terme est une variable qui a été définie comme globale ainsi :Tu n'as qu'à regarder les liens que j'ai mis dans le post #2

Discussions similaires

  1. Variable Globale dans un module de formulaire.
    Par wisiwi dans le forum Access
    Réponses: 5
    Dernier message: 30/03/2006, 14h03
  2. utilisation des variables global dans tout le projet
    Par EYENGA Joël dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2006, 10h55
  3. Variables globales dans une classe
    Par vanitom dans le forum C++
    Réponses: 16
    Dernier message: 14/01/2005, 14h40
  4. Variables globales dans fichiers entête
    Par benj_f04 dans le forum C++
    Réponses: 5
    Dernier message: 13/08/2004, 09h06
  5. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 19h22

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