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 :

Modifications des variables d'une GUI dans une autre GUI.


Sujet :

Interfaces Graphiques

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Par défaut Modifications des variables d'une GUI dans une autre GUI.
    Bonjour,

    Mon problème est simple, une GUI contient des variables à modifier, et cette modification se fait dans une autre GUI.

    Le passage des valeurs dans un sens ne pose pas de problème, je le fais par l'intermédiaire de varargin.

    Mais pour retourner à ma première GUI les valeurs modifiés, cela pose problème.

    Ici le Callback du bouton "Paramètres"
    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
    function param_Callback(hObject, eventdata, handles)
    % hObject    handle to param (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    %LANCEMENT DE LA FENETRE PARAMETRES
    h = parametres(handles.alpha,handles.Pi,handles.Ti,handles.Rhoi,handles.n);
     
    %ATTENTE QUE L'UTILISATEUR ENTRE LES NOUVELLES VALEURS
    uiwait(h);
     
    % RECUPERATION DE CES NOUVELLES VALEURS
    % C'EST LA QUE CA POSE PROBLEME
    paramData=guidata(h)
     
    %paramData NE CONTIENT PAS LES BONNES VALEURS.... PK ?
     
    handles.alpha=paramData.alpha;
    handles.Pi=paramData.Pi;
    handles.Ti=paramData.Ti;
    handles.Rhoi=paramData.Rhoi;
    handles.n=paramData.n;
    Et ici le retour lorsqu'on valide dans le fenêtre paramètre:
    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
    function calculer_Callback(hObject, eventdata, handles)
    % hObject    handle to calculer (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % MISE A JOUR DES VARIABLES AVEC LES NOUVELLES VALEURS
    handles = guidata(gcbf);
    handles.alpha=str2double(get(handles.alphaText,'String'));
    handles.Pi=str2double(get(handles.PiText,'String'));
    handles.Ti=str2double(get(handles.TiText,'String'));
    handles.Rhoi=str2double(get(handles.RhoiText,'String'));
    handles.n=str2double(get(handles.nText,'String'));
     
    handles
    %ICI handles CONTIENT LES BONNES VALEURS
     
    % ON RESUME
    uiresume(gcbf);

    Mon problème est commenté.

    Quand je fais "handles" dans la fenetre parametres, il m'affiche bien les nouvelles valeurs, mais lorsque je fais "paramData", il n'affiche pas les nouvelles valeurs mais les anciennes.
    Pourtant je fais bien "paramData=guidata(h)".

    Je bloque depuis un bout de temps, alors j'attends vos explications

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Et que contient paramData alors ?

    Je parierais que la variable est vide, non ?

    La fenêtre de récupération des paramètres étant fermée que tu appelles le GUIDATA, l'identifiant h ne devrait plus être valide...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Par défaut
    non paramData n'est pas vide elle contient bien toutes les variables de la fenetre parametres mais avec les anciennes valeurs.

    La fenetre n'est pas fermée au moment ou j'appel GUIDATA.

    Je comptais mettre un "close h" a la fin de ma fonction Callback de ma première fenetre (du bouton 'Parametres').

    Le close h se situerait donc apres le GUIDATA et serait lu apres le "resume"


  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Citation Envoyé par Fredovsky Voir le message
    La fenetre n'est pas fermée au moment ou j'appel GUIDATA.
    oopss... j'avais pas vu le UIRESUME dans l'autre fonction

    Il faut utiliser GUIDATA une seconde fois avant le UIRESUME pour stocker la structure handles avec les nouvelles valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    guidata(gcbf,handles);
     
    uiresume(gcbf);

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Par défaut
    Merci pour ton aide !

    Ça fonctionne impek désormais !


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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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