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 :

communication entre 2 interfaces


Sujet :

Interfaces Graphiques

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2015
    Messages : 12
    Par défaut communication entre 2 interfaces
    Bonjour,
    J'ai créé deux interfaces graphiques et j'ai le problème suivant:
    Dans le premier gui j'ai un Edit box dans lequel je dois entrer une valeur lors de l'exécution, Cette valeur doit être connue pour le deuxième gui (variable globale)
    j'ai utilisé la fonction (guidata) mais ça marche pas

    Voilà le code de mon interface graphique (dans la fonction OpeningFcn)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    handles.output = hObject
    a = str2double(get(handles.edit,'String'))
    a = handles.a
    setappdata(0,'a',a)
    % Update handles structure
    guidata(hObject, handles);
    veuillez m'aider et Merci d'avance

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

    Pourrais-tu expliquer comment sont liées ces deux interfaces entre-elles ?

    À noter que la fonction OpeningFcn est exécutée à l'ouverture de l'interface, je doute que tu veuilles récupérer la valeur saisie (alors vide, ou à sa valeur par défaut) à ce moment-là.
    Tu parles de plus de variable globale, mais ton code contient setappdata et guidata... as-tu consulté ce tutoriel ?

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2015
    Messages : 12
    Par défaut
    la première interface est réalisée pour saisie une valeur qui sera utilisé dans la deuxième interface
    Cette deuxième interface s'ouvre lors de l'appui sur un button (ok)
    voila le code du mon premier gui
    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
     
     
     function varargout = gui1(varargin)
    % GUI1 M-file for gui1.fig
    %      GUI1, by itself, creates a new GUI1 or raises the existing
    %      singleton*.
    %
    %      H = GUI1 returns the handle to a new GUI1 or the handle to
    %      the existing singleton*.
    %
    %      GUI1('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in GUI1.M with the given input arguments.
    %
    %      GUI1('Property','Value',...) creates a new GUI1 or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before gui1_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to gui1_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
     
    % Edit the above text to modify the response to help gui1
     
    % Last Modified by GUIDE v2.5 10-Feb-2015 12:42:38
     
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @gui1_OpeningFcn, ...
                       'gui_OutputFcn',  @gui1_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
     
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
        %guidata(hObject,handles)
     
    % --- Executes just before gui1 is made visible.
    function gui1_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to gui1 (see VARARGIN)
     
    % Choose default command line output for gui1
     
    handles.output = hObject
    a = str2double(get(handles.edit,'String'))
    a = handles.a
    setappdata(0,'a',a)
     
    % Update handles structure
    guidata(hObject, handles);
     
     
    % --- Outputs from this function are returned to the command line.
    function varargout = gui1_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Get default command line output from handles structure
    varargout{1} = handles.output;
     
     
    function edit_Callback(hObject, eventdata, handles)
    % hObject    handle to edit (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 edit as text
    %        str2double(get(hObject,'String')) returns contents of edit as a double
     
    guidata(hObject.handles)
     
     
    % --- Executes during object creation, after setting all properties.
    function edit_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
     
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
     
     
    % --- Executes on button press in ok.
    function ok_Callback(hObject, eventdata, handles)
    % hObject    handle to ok (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    guidata(hObject, handles);
    close(gui1)
    imshow(gui2)
    pouvez vous m'aider à stocker la valeur entré par l'utilisateur comme variable globale

    le massage d'erreur est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ??? Reference to non-existent field 'm'.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Aucun besoin d'utiliser de variable globale ou autre appel à setappdata / guidata... simplement passer les variables en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function ok_Callback(hObject, eventdata, handles)
     
    valeur = str2double(get(handles.edit,'String'));
    if ~isnan(valeur) % On peut éventuellement vérifier que la saisie est correcte :)
        close(gui1)
        gui2(valeur)
    else
        warndlg('Saisie incorrecte')
    end
    À consulter : Comment gérer les arguments d'entrée et de sortie d'une interface créée avec GUIDE ?

Discussions similaires

  1. Réponses: 10
    Dernier message: 27/03/2015, 07h49
  2. [Débutant] communication entre interfaces graphiques
    Par abdousoft dans le forum Interfaces Graphiques
    Réponses: 17
    Dernier message: 14/06/2011, 03h56
  3. Réponses: 4
    Dernier message: 08/03/2011, 12h10
  4. communication entre des interfaces
    Par pedro22926 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 24/04/2010, 16h51

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