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 :

Problème données popup menu [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut Problème données popup menu
    Bonjour à tous,

    Voilà depuis plusieurs heures que j'essaye de résoudre un problème sous MATLAB.

    J'ai utilisé le guide pour créer une interface graphique, à l'aide de deux boutons, je vais sélectionner un fichier de référence puis un dossier qui contient mes fichiers de mesure. Ensuite, je souhaite mettre à jour le popup menu pour qu'il affiche les fichiers MATLAB contenus dans le dossier sélectionner, laisser l'utilisateur choisir parmi les fichiers disponibles et suivant son choix, récupérer le nom du fichier qu'il aura choisit pour ensuite afficher les résultats à l'aide d'un autre bouton.

    Voici le code :

    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
    obj = findobj(gcf,'tag','popupmenu1');
    for i = 1:length(res2(:,1))
        str{i} = res2(i,:);
    end
    set(obj,'string',str) 
     
     
    % --- Executes on selection change in popupmenu1.
    function popupmenu1_Callback(hObject, eventdata, handles)
    % hObject    handle to popupmenu1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from popupmenu1
     
    str = get(hObject,'string');
    val = get(hObject,'value');
    set(handles,'string', str{val});
    Sachant que res2 est de type <4xn char> avec n le nombre de caractères du nom du fichier et vaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    val =
     
    fichier1.m    
    fichier2.m
    fichier3.m   
    fichier4.m
    Quand j'exécute le programme, les 4 fichiers s'affichent dans le popup menu mais génère l'erreur suivante et à chaque fois que je sélectionne un fichier, cette même erreur est regénérée.

    Undefined function 'blabla' for input arguments of type 'struct'.
    
    Error in
    @(hObject,eventdata)blabla('popupmenu1_Callback',hObject,eventdata,guidata(hObject))
    
     
    Error while evaluating uicontrol Callback
    
    Error using edit (line 66)
    Undefined function or variable 'hObject'.
    
    Error in helpUtils.errorDocCallback (line 23)
                if ~edit(editTopic)
    Je vous remercie par avance pour l'aide que vous m'apporterez, je reste à votre disposition pour toute demande de renseignements.

    Cordialement,

    Yul56

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour,

    Peux tu nous transmettre les lignes de code correspondant à ton erreur?
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Je vous ai transmis toutes les lignes relatives à l'erreur qui est générée. De quelles lignes parlez-vous ?

  4. #4
    Membre régulier
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    Que doit normalement faire le code quand tu cliques sur ton popupmenu ?
    Quelle est cette fonction blabla qui est référencée en erreur ?

    Je me trompe peut être mauis la ligne de commande suivante n'a pas de sens pour moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles,'string', str{val});

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Et dans quelle fonction se trouve ces lignes de code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    obj = findobj(gcf,'tag','popupmenu1');
    for i = 1:length(res2(:,1))
    str{i} = res2(i,:);
    end
    set(obj,'string',str)
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Le popup est là pour afficher les fichiers MATLAB qui sont répertoriés dans le dossier que l'utilisateur a précédemment sélectionné. Ensuite, il doit sélectionner via le popup un de ces fichiers.

    Le blabla est le nom de mon fichier MATLAB qui contient le code généré par le guide (blabla.m).

    Les lignes de code Gooby se situent dans la function pushbutton3_Callback(hObject, eventdata, handles), fonction qui propose à l'utilisateur de sélectionner un dossier contenant les mesures.

  7. #7
    Membre régulier
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    Pour en revenir à ma dernière question, je voulais savoir ce que tu veux faire du nom du fichier une fois qu'il est sélectionné ? (le réutiliser dans une autre fonction, simplement l'afficher...)

    Pour ce qui est de cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles,'string', str{val});
    L'utilisation n'est pas correcte, mais pour t'aider un peu plus j'en reviens à ma précédente question

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Est-ce que tu as changé le nom du .m ou du .fig à un moment ou un autre?
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Non, à aucun moment je n'ai modifié nom du fichier, le .m et le .fig possède le même nom.

    Lorsque je sélectionne un fichier dans le popup, je veux simplement récupérer le nom dans une variable que je réutiliserais dans le dernier bouton.

  10. #10
    Membre régulier
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    la fonction set va te permettre de modifier les propriétés d'un objet dont tu as rentrer l'handles en paramètre.
    Elle ne permet pas de sauvegarder une varaible pour la réutilisé dans une autre fonction.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Du coup, comment je peux stocker le choix fait par l'utilisateur ?

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Tu n'as pas nécessairement besoin de le stocker, puisque tu peux le récupérer à tout moment dans n'importe quel callback.

    Par exemple si le tag de ton popup est "monPopup" et que tu veux le récupérer dans un autre callback que celui du popup, il te suffit de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    idx_popup = get(handles.myPopup,'Value');
    % et si tu veux aussi son string;
    contenu = get(handles.myPopup,'String');
    choix_popup_str = contenu{idx};
    EDIT: mais si tu veux absolument la stocké pour la reprendre dans un autre callback tu peux mettre dans le callback de ton popup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    handles.popupInfo = str{val};
    guidata(hObject,handles);
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    J'ai retiré les lignes inutiles du coup dans la function pushbutton3_Callback(hObject, eventdata, handles), j'ai uniquement gardé celles qui remplissent le popup. Pour la function popupmenu1_Callback(hObject, eventdata, handles), je l'ai laissée vid et dans la dernière fonction que j'ai, j'ai rajouté les lignes que vous m'avez envoyés. J'ai toujours la même erreur.

    Je pense que le problème vient de la façon dont je remplis le popup dans la function pushbutton3_Callback(hObject, eventdata, handles).

  14. #14
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Peux tu copier l'intégralité de ton code? J'ai l'impression que si tu laissais tout tes callback vide, tu aurais toujours un problème.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    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
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    function varargout = blabla(varargin)
    % BLABLA MATLAB code for blabla.fig
    %      BLABLA, by itself, creates a new BLABLA or raises the existing
    %      singleton*.
    %
    %      H = BLABLA returns the handle to a new BLABLA or the handle to
    %      the existing singleton*.
    %
    %      BLABLA('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in BLABLA.M with the given input arguments.
    %
    %      BLABLA('Property','Value',...) creates a new BLABLA or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before blabla_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to blabla_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 blabla
    % Last Modified by GUIDE v2.5 25-Jun-2015 13:58:55
     
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
        'gui_Singleton',  gui_Singleton, ...
        'gui_OpeningFcn', @blabla_OpeningFcn, ...
        'gui_OutputFcn',  @blabla_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
     
     
    % --- Executes just before blabla is made visible.
    function blabla_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 blabla (see VARARGIN)
     
    % Choose default command line output for blabla
    handles.output = hObject;
     
    % Update handles structure
    guidata(hObject, handles);
     
    % UIWAIT makes blabla wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
     
     
    % --- Outputs from this function are returned to the command line.
    function varargout = blabla_OutputFcn(~, 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;
     
     
    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
     
    % --- Executes on button press in pushbutton2.
    function pushbutton2_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    [FileName,PathName] = uigetfile('*0','Sélectionner le fichier de référence');
    c = num2str(fullfile(PathName,FileName));
    imp = load(c);
    V_ref = max(imp(3137:3162))-min(imp(3137:3162));
    setappdata(0,'FileName',FileName);
    setappdata(0,'c',c);
     
     
    % --- Executes on button press in pushbutton3.
    function pushbutton3_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    c = uigetdir;
    cd(c);
    file = ls;
    res = [];
    FileName = getappdata(0,'FileName');
    for i = 1:1:length(file)
        a = file(i,:);
        n = 1;
        b = 0;
        while a(n) ~= ' ' && n ~= length(file(1,:))
            b = b+1;
            n = n+1;
        end
        if file(i,b) == '0' && file(i,b-1) == '_'
            res = strvcat(res, a(1:b));   
        end
    end
     
    if res(1,1) == FileName(1,1)
        res = res(1,:);
    else
        res = res(2,:);
    end
     
    u = [];
    for i = 0:1:188
        num = num2str(i);
        cst = length(res(1,:))-1;
        while cst ~= 1
            if res(1,cst) == '_'
                res1 = [res(1,1:cst) num];
                cst = 1;
            else
                cst = cst-1;
            end
        end
     
        u(:,i+1) = load(res1);
        u(:,i+1) = u(:,i+1)-sum(u(:,i+1))/length(u(:,i+1));
        ut = u';
    end
     
    res2 = [];
    for i = 1:1:length(file)
        a = file(i,:);
        for j = 1:1:length(a)-1;
            if a(j) == '.' && a(j+1) == 'm'
                res2 = [res2 ; a];
            end
        end
    end
     
    obj = findobj(gcf,'tag','popupmenu1');
    for i = 1:length(res2(:,1))
        str{i} = res2(i,:);
    end
    set(obj,'string',str); 
    % setappdata(0,'res',res);
    % setappdata(0,'cel',cel);
    % str = get(hObject.popmenu1,'string');
    % val = get(hObject.popmenu1,'value');
    % set(handles.popmenu1,'string', str{val});
     
     
    % --- Executes on selection change in popupmenu1.
    function popupmenu1_Callback(hObject, eventdata, handles)
    % hObject    handle to popupmenu1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from popupmenu1
     
     
    % --- Executes during object creation, after setting all properties.
    function popupmenu1_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to popupmenu1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
     
    % Hint: popupmenu 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 radiobutton2.
    function radiobutton2_Callback(hObject, eventdata, handles)
    % hObject    handle to radiobutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Hint: get(hObject,'Value') returns toggle state of radiobutton2
     
     
    % --- Executes on button press in radiobutton3.
    function radiobutton3_Callback(hObject, eventdata, handles)
    % hObject    handle to radiobutton3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Hint: get(hObject,'Value') returns toggle state of radiobutton3
     
     
    % --- Executes on button press in pushbutton4.
    function pushbutton4_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton4 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    idx_popup = get(handles.popupmenu1,'Value');
    contenu = get(handles.popupmenu1,'String');
    rep = contenu{idx_popup}; 
     
    ii = 1;
    while rep(ii) ~= ' ' || ii ~= length(rep)
        ii = ii+1;
    end
    rep = rep(1:ii);
     
    imp = importdata(rep, ' ', 150);
    idx = strfind(imp,'kapa');
    res3 = [];
    for i = 1:length(idx)
        if isempty(idx{i}) == 0
            res3 = [res3 ; i];
        end
    end
     
    if isempty(res3) ~= 1
        res4 = [];
        for i = res3(1):res3(length(res3))+1
            res4 = strvcat(res4, cell2mat(imp(i)));
        end
        res4 = cellstr(res4);
        idx1 = strfind(res4,'for');
        res5 = [];
        for i = 1:length(idx1)
            if isempty(idx1{i}) == 0
                res5 = [res5 ; i];
            end
        end
        l = 1;
        while l ~= length(res4)+1
            if isempty(idx1{l}) == 0
                eval(strcat(cell2mat(res4(l,:)),cell2mat(res4(l+1,:)),cell2mat(res4(l+2,:))));
                l = l+3;
            else
                eval(strcat(cell2mat(res4(l,:))));
                l = l+1;
            end
        end
    end
    V_objet = abs(utbis);
     
    d = 0.2;
    TS_sphere = 20*log10(d/4);
    TS_objet = 20*log10(V_objet/V_ref)+TS_sphere;
     
    c = getappdata(0,'c');
    temp = length(c);
    num = [];
    while temp ~= 1 && isempty(num) == 1
        if c(temp) == '\'
            num = [c(temp+1) c(temp+2)];
        else
            temp = temp-1;
        end
    end
     
    temp = length(c);
    elt = [];
    while temp ~= 1 && isempty(elt) == 1
        if c(temp) == '_'
            for i = temp+1:length(c)
                elt = [elt c(i)];
            end
        else
            temp = temp-1;
        end
    end
     
    temp1 = 1;
    car = [];
    while temp1 ~= length(c) && isempty(car) == 1
        if c(temp1) == '\'
            temp2 = temp1;
            while temp2 ~= length(c) && isempty(car) == 1
                if c(temp2) == '_'
                    for i = temp1+1:temp2-1
                        car = [car c(i)];
                    end
                else
                    temp2 = temp2+1;
                end
            end
        else
            temp1 = temp1+1;
        end
    end
     
    temp = length(c);
    freq = [];
    while temp ~= 1 && isempty(freq) == 1
        if c(temp) == '\'
            if c(temp-6) == '_'
                freq = [c(temp-5) c(temp-4)];
            else
                freq = [c(temp-6) c(temp-5) c(temp-4)];
            end
        else
            temp = temp-1;
        end
    end
     
    res = getappdata(0,'res');
    if res(1,1) == 'B'
        cap = 'B&K';
    else
        cap = 'T200';
    end
     
    txt = 'blabla';
     
    fe = 10000/5000e-06;
    t = (0:10000)*1000/fe;
    surf(t,-94:94,TS_objet);
    view(2)
    shading interp
    axis([0 max(t) -94 94])
    colorbar;
    title(txt)
    ylabel('Incidence (°)')
    xlabel('Fréquence (kHz)')
    legend('Blabla')

  16. #16
    Membre régulier
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    La façon dont tu remplis ton popupmenu me parait correcte, même si tu peux simplement mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.popupmenu1,'string',str);
    Ce qui est étonnant c'est plutot l'erreur disant que la fonction blabla n'est pas définie, comme Gooby je pense à un changement de nom mais d'apres toi il n'y a eu aucun changement.
    Tes deux fichiers .m et .fig sont-ils bien dans le même dossier ?

    Tu pourrais aussi essayer de ne mettre aucun code dans tes callbacks pour voir si l'erreur est toujours présente, à voir

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    J'ai tout désactivé dans le dernier bouton et dans le popup, j'ai aussi désactivé la fonction qui remplissait le popup donc maintenant, il n'y a plus que les deux premiers boutons qui fonctionnent et le popup n'intéragit avec rien, il est juste créer par le code issu du guide. Lorsque que je me positionne sur le popup et que je sélectionne le menu déroulant, j'ai le même message d'erreur qui s'affiche.

    EDIT : Les fichiers sont bien dans le même dossier. Je pensais à une solution, peut-être que si je demandais à afficher le popup une fois qu'il a bien récupéré les fichiers qu'il doit afficher, peut-être que ça résoudrait le problème, parce que actuellement, lorsque que je sélectionne le fichier puis le dossier, je dois d'abord clique sur le menu déroualnt afin que celui-ci se mette à jour et m'affiche les données.

  18. #18
    Membre régulier
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    Peux tu upload ton fichier .fig que je vois un peu mieux ?

  19. #19
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Je n'arrive pas à le faire, impossible d'envoyer. Envoyez-moi une adresse mail en MP.

    EDIT : Laissez tomber, je me situe sur un site sécurisé, je ne pourrais pas le faire. Va falloir essayer de trouver une solution autrement.

  20. #20
    Membre régulier
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    j'ai refait une interface en prenant tous les objets appelés en callback dans ton programme et en entrant en dur la forme de la variable str, je n'ai pas d'erreur avec le popupmenu.

    Il y a peut être des erreurs dans le code

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Popup menu problème de manipulation
    Par Dr walid dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/05/2014, 20h39
  2. problème d'appel entre le popup-menu et un botton
    Par Braiki Mahdi dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 30/04/2010, 08h08
  3. [Débutant] problème popup menu
    Par jane40 dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 17/04/2009, 16h30
  4. [PageControl] problème avec le popup menu
    Par Rayek dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/02/2006, 15h56
  5. Mettre un popup menu invisible ??
    Par Alberto dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/12/2002, 09h02

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