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 :

Transmission de variable d'une fenêtre à l'autre [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Transmission de variable d'une fenêtre à l'autre
    Bonjour,
    Je suis un débutant dans la programmation d'interface matalab. Mes probléme vont sûrement paraître simple et je vais essayer d'être clair dans mes explications.
    Comment récuperer les variables venant d'une autre fenêtre pour la mettre dans le programme principal pour la mettre ensuite dans le workspace?

    Voici le code que j'ai fais:
    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
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    function gui_appdata_findobj
    % Création de l'objet Figure
    figure('units','pixels',...
    'position',[250 250 500 500],...
    'color',[1 1 1],...
    'numbertitle','off',...
    'name','FENETRE DE PARAMETRAGE',...
    'menubar','none',...
    'tag','interface');
     
    %TEXTE
    uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','left',...
            'Position',[0.07 0.82 0.5 0.05],...
            'String',' Valeur de x minimum',...
            'Style','text');
     
    uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','left',...
            'Position',[0.07 0.72 0.5 0.05],...
            'String',' Valeur de x maximum',...
            'Style','text');
     
    uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','left',...
            'Position',[0.07 0.62 0.5 0.05],...
            'String',' Valeur du coefficient directeur a',...
            'Style','text');
     
    uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','left',...
            'Position',[0.07 0.47 0.5 0.10],...
            'String',' Valeur du coefficient de l''ordonnée à l''origine',...
            'Style','text');
     
    %TEXTE EDITABLE
    edit_xo=uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','right',...
            'Position',[0.52 0.82 0.3 0.05],...
            'Tag','editx0',...
            'Style','edit');
     
    edit_xmax=uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','right',...
            'Position',[0.52 0.72 0.3 0.05],...
            'Tag','editxmax',...
            'Style','edit');
     
    edit_coefa=uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','right',...
            'Position',[0.52 0.62 0.3 0.05],...
            'Tag','editcoefa',...
            'Style','edit');
     
    edit_coefb=uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','right',...
            'Position',[0.52 0.52 0.3 0.05],...
            'Tag','editcoefb',...
            'Style','edit');
     
    % Création de l'objet Uicontrol Pushbutton -
    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 Pushbutton afficher
    uicontrol('style','pushbutton',...
    'units','normalized',...
    'position',[0.3 0.1 0.15 0.05],...
    'string','Afficher',...
    'callback',@afficher,...
    'tag','afficher');
     
    % Création de l'objet Uicontrol Pushbutton ok
    uicontrol('style','pushbutton',...
    'units','normalized',...
    'position',[0.45 0.1 0.15 0.05],...
    'string','ok',...
    'callback',@ ok_botton_Callback,...
    'tag','ok');
     
    %% textes qui affiche les données rentrées
    % Création de l'objet Uicontrol Text résultat
    uicontrol('style','text',...
    'units','normalized',...
    'position',[0.1 0.2 0.1 0.05],...
    'string','0',...
    'tag','resultat_x0');
     
    uicontrol('style','text',...
    'units','normalized',...
    'position',[0.2 0.2 0.1 0.05],...
    'string','0',...
    'tag','resultat_xmax');
     
    uicontrol('style','text',...
    'units','normalized',...
    'position',[0.3 0.2 0.1 0.05],...
    'string','0',...
    'tag','resultat_coefa');
     
    uicontrol('style','text',...
    'units','normalized',...
    'position',[0.4 0.2 0.1 0.05],...
    'string','0',...
    'tag','resultat_coefb');
     
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %FIN DE LA FONCTION PRINCIPALE%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %DEBUT DE LA SOUS-FONCTION RETRANCHER%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    function retrancher(obj,event)
    % Récupération de l'identifiant de l'objet Uicontrol Text résultat enfant de l'objet Figure
    % contenant l'objet graphique dont l'action est exécutée (gcbf)
    h=findobj('parent',gcbf,'style','text','tag','resultat_x0');
    nCompteur=str2double(get(h,'string'))
    % Récupération directe de nCompteur depuis les données d'application de l'objet Figure
    % contenant l'objet graphique dont l'action est exécutée (gcbf)
    %nCompteur=getappdata(gcbf,'valeur_de_nCompteur');
    % Diminution de la valeur de nCompteur
    nCompteur=nCompteur-1;
    % Modification de sa propriété String
    set(h,'string',num2str(nCompteur));
    % Enregistrement de la nouvelle valeur de nCompteur dans les données d'application de l'objet Figure
    % contenant l'objet graphique dont l'action est exécutée (gcbf)
    setappdata(gcbf,'valeur_de_nCompteur',nCompteur);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %FIN DE LA SOUS-FONCTION RETRANCHER%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %DEBUT DE LA SOUS-FONCTION AFFICHER%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    function afficher(obj,event)
     
    %% Affichage de x0 dans les données d'application de l'objet Figure
    %Etape de recherche de la valeur rentrée
    h=findobj('parent',gcbf,'style','edit','tag','editx0');
    xO=get(h,'string')
    xO=str2double(xO)
    %Etape d'affichage de la valeur rentrée
    h=findobj('parent',gcbf,'style','text','tag','resultat_x0');
    % Modification de sa propriété String
    set(h,'string',num2str(xO));
     
    %% Affichage de xmax dans les données d'application de l'objet Figure
    %Etape de recherche de la valeur rentrée
    hmax=findobj('parent',gcbf,'style','edit','tag','editxmax');
    xmax=get(hmax,'string')
    xmax=str2double(xmax)
    %Etape d'affichage de la valeur rentrée
    hmax=findobj('parent',gcbf,'style','text','tag','resultat_xmax');
    % Modification de sa propriété String
    set(hmax,'string',num2str(xmax));
     
    %% Affichage de a dans les données d'application de l'objet Figure
    %Etape de recherche de la valeur rentrée
    ha=findobj('parent',gcbf,'style','edit','tag','editcoefa');
    a=get(ha,'string')
    a=str2double(a)
    %Etape d'affichage de la valeur rentrée
    ha=findobj('parent',gcbf,'style','text','tag','resultat_coefa');
    % Modification de sa propriété String
    set(ha,'string',num2str(a));
     
    %% Affichage de B dans les données d'application de l'objet Figure
    %Etape de recherche de la valeur rentrée
    hb=findobj('parent',gcbf,'style','edit','tag','editcoefb');
    b=get(hb,'string')
    b=str2double(b)
    %Etape d'affichage de la valeur rentrée
    hb=findobj('parent',gcbf,'style','text','tag','resultat_coefb');
    % Modification de sa propriété String
    set(hb,'string',num2str(b));
     
     
    function ok_botton_Callback(hObject, eventdata, handles)
    % hObject    handle to ok_botton (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    %%%% Que Mettre???
    Comme vous pouvez le voir je me suis appuié pour commencer sur le tutorial de ce site. Au début j'avais mis des arguments de sortie pour la fonction mais le probléme c'est quelle me donner les valeurs rentrer la fois d'avant!!

    J'ai aussi une autre question c'est comment "préremplir" l'affichage (string) d'un bouton edit avec une variable déja présent pas exemple dans le workspace?

    Merci d'avance

  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 316
    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 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Pour interagir avec le WorkSpace depuis une fonction, il faut utiliser EVALIN ou ASSIGNIN

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    c'était pas tout à fait ma question j'ai du mal m'exprimer: C'était de passer des variables d'une fenêtre à l'autre sans passer dans un premier temps par le workspace.

    et ma seconde question c'est comment afficher par exemple '5' dans le bouton edit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    b=5;
    edit_nombre=uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','right',...
            'Position',[0.52 0.62 0.3 0.05],...
            'Tag','editcoefa',...
            'String',''b'',...
            'Style','edit');
    En tout cas merci pour la rapidité de ta premier réponse

  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 316
    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 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Citation Envoyé par Persuadeur Voir le message
    et ma seconde question c'est comment afficher par exemple '5' dans le bouton edit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    b=5;
    edit_nombre=uicontrol('FontSize',10,...
            'ForegroundColor',[0 0 1],...
            'Units','normalized',...
            'horizontalalignment','right',...
            'Position',[0.52 0.62 0.3 0.05],...
            'Tag','editcoefa',...
            'String',num2str(b),...
            'Style','edit');


    Citation Envoyé par Persuadeur Voir le message
    C'était de passer des variables d'une fenêtre à l'autre sans passer dans un premier temps par le workspace.
    Tu peux définir la propriété Tag des deux objets Figure et utiliser la fonction FINDOBJ avec pour retrouver leur identifiant quand tu en as besoin.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci beaucoup dut, ça m'éclaire beaucoup.
    J'espère pas être trop embétant mais quelle est la fonction à utiliser pour pouvoir lire le workspace lorsqu'on est dans une fonction, en quelques sorte le 'get workspace value'

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    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 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Citation Envoyé par Persuadeur Voir le message
    J'espère pas être trop embétant mais quelle est la fonction à utiliser pour pouvoir lire le workspace lorsqu'on est dans une fonction, en quelques sorte le 'get workspace value'
    Comme je l'ai déjà dit, il s'agit de la fonction EVALIN.

    Par exemple, si il existe une variable b dans le WorkSpace principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> b = 5
     
    b =
     
         5
    On peut récupérer sa valeur dans une fonction nommée test comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function test
     
    x = evalin('base','b')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >> b = 5;
    >> test
     
    x =
     
         5

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci pour ton aide et ta patience Dut

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

Discussions similaires

  1. Passer une variable d'une fenêtre à une autre
    Par skymax406 dans le forum Débuter
    Réponses: 1
    Dernier message: 27/07/2011, 11h22
  2. Réponses: 3
    Dernier message: 19/07/2008, 00h10
  3. Affichage variable dans une fenêtre d'alerte
    Par undercrash dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/03/2006, 21h35
  4. tableau global - d'une fenêtre à l'autre
    Par grinder59 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/02/2006, 10h50
  5. Valeur d'e variable d'une fct dans autre fonction
    Par Torpedox dans le forum Langage
    Réponses: 3
    Dernier message: 11/11/2005, 08h48

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