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 :

Set/Getappdata avec 2 figures


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut Set/Getappdata avec 2 figures
    Bonjours,

    Alors voila je créé un GUI pour rendre plus convivial mon programme sous matlab, ce qui permet a l'utilisateur d'entrer des données( dans des edit).
    Je veux donc ensuite les placer dans des variables(que je peux voir dans mon workspace(je pense)) pour les réutiliser.
    Je suis la façon de faire déjà donnée en lien plusieurs fois sur ce forum...(j'utilise la technique avec les setappdata et getappdata).
    Mais je ne parvient pas à récupérer mes valeurs introduites....elles doivent bien apparaitre quelque part tout de même???
    (Désolé pour mon ignorance)
    Voila le code que j'ai déjà fais...(j'ai essayer de me concentrer sur L dans le programme)

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %  DEBUT DE LA PREMIERE FENETRE %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    function param_user
     
    % Création de l'objet Figure (fenêtre)
    figure('units','pixels',...
        'position',[350 200 500 500],...
        'color','w',...
        'numbertitle','off',...
        'name','Variables paramétrables pour le treillis de Pratt',...
        'menubar','none',...
        'tag','param1');
     
    %%% Création des différents points à demander
     
    %Nombre de mailles
    uicontrol('style','text',...
        'units','normalized',...
        'position',[0.2 0.7 0.3 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'string','Nombre de mailles:');
    %Longueur du pont[m]
    uicontrol('style','text',...
        'units','normalized',...
        'position',[0.2 0.6 0.3 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'string','Longueur du pont[m]:');
    %Hauteur du pont[m]
    uicontrol('style','text',...
        'units','normalized',...
        'position',[0.2 0.5 0.3 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'string','Hauteur du pont[m]:');
    %Section des barres[m²]
    uicontrol('style','text',...
        'units','normalized',...
        'position',[0.2 0.4 0.3 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'string','Section des barres[m²]:');
    %Nature des barres[GPa]
    uicontrol('style','text',...
        'units','normalized',...
        'position',[0.2 0.3 0.3 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'string','Nature des barres[GPa]:');
     
    %%%Création des cases à remplir
    %%%Travail encore effectué que sur Longueur...
    %Mailles
    m=uicontrol('style','popupmenu',...
        'units','normalized',...
        'position',[0.5 0.7 0.1 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'tag','mm',...
        'string',[2 6 10 14 18 22 26 30 34 38 42 46]);
     
    %Longueur
    saisieL=uicontrol('style','edit',...
        'units','normalized',...
        'position',[0.5 0.6 0.05 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'tag','LL',...
        'string','0');
    setappdata(gcf,'handleL',saisieL);%enregistrement de la valeur du handle
     
    %Hauteur
    h=uicontrol('style','edit',...
        'units','normalized',...
        'position',[0.5 0.5 0.05 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'tag','hh',...
        'string','0');
    %Section
    S=uicontrol('style','edit',...
        'units','normalized',...
        'position',[0.5 0.4 0.05 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'tag','SS',...
        'string','0');
    %Nature
    E=uicontrol('style','edit',...
        'units','normalized',...
        'position',[0.5 0.3 0.05 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'tag','EE',...
        'string','0');
     
    %%% Création du bouton qui permet de sauvegarder les valeurs
    uicontrol('style','pushbutton',...
        'units','normalized',...
        'position',[0.3 0.1 0.1 0.05],...
        'string','Save',...
        'callback',@sauvegarde,...
        'tag','save');
     
     
    %%% Création du bouton suivant
    uicontrol('style','pushbutton',...
        'units','normalized',...
        'position',[0.5 0.1 0.1 0.05],...
        'string','Suivant',...
        'callback',@param_calc,...
        'tag','suivant1');
     
    %%%Sauvegarde des valeurs introduites%%%
    function sauvegarde(obj,event)
    saisieL=getappdata(gcf,'handleL');
    L=get(saisieL,'string');
     
    %%%%%%%%%%%%%%%%%%%%%%%
    %%% Deuxième fenêtre%%%
    %%%%%%%%%%%%%%%%%%%%%%%
     
    function[b,n,A,C,alpha,alpha_deg,beta,beta_deg]=param_calc(m,L,h,S,E)
     
    % Création de l'objet Figure (fenêtre)
    figure('units','pixels',...
        'position',[350 200 500 500],...
        'color','r',...
        'numbertitle','off',...
        'name','Variables paramétrables pour le treillis de Pratt',...
        'menubar','none',...
        'tag','param2');
    Merci a vous!!!

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

    Une meilleure façon je pense pour la sauvegarde serai d'utiliser les callback de tes uicontrol 'edit' comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    uicontrol('style','edit',...
        'units','normalized',...
        'position',[0.5 0.6 0.05 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'tag','LL',...
        'callback',@sauverL,...    
        'string','0');
    
    function sauverL(obj,evnt)
    L = str2double(get(obj,'string')); % ici tu récupères la valeur tapée
    setappdata(gcf,'Longueur',L); % ici tu enregistres ta longueur sous le nom 'Longueur'
    Tu n'as alors plus besoin du bouton 'save'.

    Ensuite le callback suivant ressemblerai plutôt à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    *
    function [b,n,A,C,alpha,alpha_deg,beta,beta_deg]=param_calc
    
    L=getappdata(gcf,'Longueur'); % récupération de la longueur
    % Création de l'objet Figure (fenêtre)
    % ...
    [b,n,A,C,alpha,alpha_deg,beta,beta_deg]
    En tant que callback du bouton suivant, tu ne pourras pas récupérer ces valeurs.

    [EDIT] Une façon plus optimisée d'utilisation du callback sauvegarde valable pour tous les 'edit'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    uicontrol('style','edit',...
        'units','normalized',...
        'position',[0.5 0.6 0.05 0.05],...
        'FontUnits','points',...
        'fontsize',10,...
        'tag','Longueur',...  % Longueur ici, Hauteur, section,... pour les autres
        'callback',@sauvegarde,...    
        'string','0');
    
    function sauvegarde(obj,evnt)
    Nom = get(obj,'tag'); % ici tu récupère le tag
    valeur = str2double(get(obj,'string')); % ici tu récupères la valeur tapée
    setappdata(gcf,Nom,valeur); % ici tu enregistres ta variable sous le nom du tag
    Dernière modification par Invité ; 15/04/2011 à 17h04.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut Test a suivre
    Re Bonjour, merci pour cette réponce très rapide! je test ca au plus vite...j'ai d'autres projets en route donc ce ne sera peut être pas avant lundi soir mais je vous tient au courant!!!
    Encore merci!!
    Rom7650

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut Premier problème résolut
    Bonjours,
    Maintenant grâce à vous je sais récupérer la valeur introduite dans une fenêtre à partir d'une autre(je n'ai encore essayé qu'une seule valeur, il faut donc encore élargir à tout).
    Mais je me demande si cette valeur peux être stockée dans une matrice (de façon permanante) que je pourrais "voire" dans le workspace...
    Merci pour votre bon conseil.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tu peux regarder pour cela les fonctions assignin/evalin.
    Sinon, si c'est pour avoir accès aux variables en cours, tu peux placer des breakpoints, ou placer la fonction keyboard.

Discussions similaires

  1. Probleme avec set/getappdata
    Par cedji dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 16/04/2012, 17h37
  2. probleme avec les figure
    Par you.baddi dans le forum Beamer
    Réponses: 2
    Dernier message: 04/05/2009, 00h17
  3. data set cube avec Birt
    Par Elise49 dans le forum BIRT
    Réponses: 9
    Dernier message: 25/03/2009, 18h07
  4. Peut on creer un Set up avec VB.Net Express 2008?
    Par papy75 dans le forum VB.NET
    Réponses: 9
    Dernier message: 18/07/2008, 09h24
  5. STL : std::set problème avec insert ...
    Par Big K. dans le forum MFC
    Réponses: 13
    Dernier message: 08/11/2003, 01h02

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