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 :

Code pour un button group


Sujet :

Interfaces Graphiques

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut Code pour un button group
    Bonjour,
    Je réalise une interface graphique afin de visualiser des données récupérées lors de mouillage en mer.
    J'ai créé un button group (son tag est "visualisation") avec deux radio button à l'intérieur :
    un pour visualiser en données cartésiennes (son tag est "cartesien") et l'autre pour visualiser en données polaires (son tag est "polaire").
    En m'aidant des informations trouvées sur internet j'ai réussi à écrire ce code dans le fichier .m contenant les lignes de code du GUIDE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    % --- Executes when selected object is changed in visualisation.
    function visualisation_SelectionChangeFcn(hObject, eventdata, handles)
    % hObject    handle to the selected object in visualisation 
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    if (hObject == handles.cartesien) 
        set(handles.visutype, 0)
    else
        set(handles.visutype, 1);
    end
    guidata(gcf, handles)
    refresh_plots(handles);
    refresh_plots est le fichier où je créée mes programmes.
    C'est ici que j'ai un problème, voici une partie du programme que je tente de modifier pour permettre la différence de visualisation :

    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
    nb_instr = length(hh.descr_mooring.instrum{mi});
            nb_rcm = 0;
            nb_adcp = 0;
            nb_cat = 0;
            for i=1:nb_instr
                type = lower(char(hh.descr_mooring.instrum{mi}(i)));
                if strfind(type, 'rcm')
                    nb_rcm = nb_rcm+1;
                end
                if strfind(type, 'adcp')
                    nb_adcp = nb_adcp+1;
                end
                if strfind(type, 'cat')
                    nb_cat = nb_cat+1;
                end                         
            end
                           
            j=1;
            nb_rcm = 0;
            for i=1:nb_instr            
                type = lower(char(hh.descr_mooring.instrum{mi}(i)));
                if strfind(type, 'rcm')
                    nb_rcm = nb_rcm+1;
                    fig4= figure(4);
                    set(fig4, 'Name','Module RCM','Posi',[191 34 1088 690]);
                    subplot(nb_instr-(nb_cat+nb_adcp), 1, j);
                    j=j+1;
                    if (handles.visutype == 0)
                        plot(hh.data_mooring.btc8, hh.data_mooring.U8(:,nb_rcm)*0.1)                
                        grid
                        ylim([0 80])
                        ylabel('cm/s')
                        title(hh.descr_mooring.instrum{mi}(i))
                        tl = get(gca, 'Xtick');
                        for k=1:length(tl)
                            xtl(k,:) = datestr(tl(k) + (ref_date),20);
                        end
                        set(gca,'Fontsize', 8, 'Xtick', tl, 'Xticklabel', xtl(:, 1:8))
                    else
                        [x,y] = pol2cart(hh.data_mooring.Cap(:,nb_rcm)*pi/180, hh.data_mooring.U8(:,nb_rcm)*0.1);
                        compass(x,y)
                    end
                end            
            end
    Je pense que le test que je lui demande de réaliser est mal codé, quelqu'un pourrait-il m'aider?
    En vous remerciant d'avance

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je n'ai pas lu tout ton 2ème code mais le problème vient manifestement d'une incompréhension de la fonction SET.
    Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.visutype, 0)
    Je suis étonnée que MATLAB ne hurle pas à ce niveau-là.
    En effet SET prend obligatoirement un nombre impair d'arguments : en 1er le handle de l'objet sur lequel on va agir, ensuite un nombre quelconque de paires (propriété,valeur).
    Tu voulais surement écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.visutype,'Value',0);
    Enfin je suppose car visutype est le seul Tag dont tu ne nous parle pas, donc on ne sait pas ce que c'est

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    Très sincèrement je suis assez perdue, connaissant encore très mal la programmation dans Matlab...
    Je tente de comprendre en m'aidant de forum mais c'est difficile.

    Quoi qu'il en soit le message d'erreur qu'il m'envoie est celui-ci :

    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
    ??? Undefined function or variable 'hObject'.
     
    Error in ==> refresh_plots at 284
                    if (hObject == handles.cartesien)
     
    Error in ==> visu_ovide>parametre_Callback at 110
    refresh_plots(handles);
     
    Error in ==> gui_mainfcn at 95
            feval(varargin{:});
     
    Error in ==> visu_ovide at 42
        gui_mainfcn(gui_State, varargin{:});
     
    ??? Error using ==> visu_ovide('parametre_Callback',gcbo,[],guidata(gcbo))
    Undefined function or variable 'hObject'.
     
    ??? Error while evaluating uicontrol Callback

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Ta fonction refresh_plot ne connait pas la variable hObject d'où l'erreur. Tu peux la lui passer en argument d'entrée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    refresh_plots(hObject, handles);
    et modifier ton test de la façon suivante (plus clair je trouve):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (strcmp(get(hObject, 'Tag'), 'cartesien'))
    Duf
    P.S. Tu devrais mettre un chouilla de commentaires dans ton code

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    merci pour l'aide
    mais... il met la même erreur après avoir modifié!

  6. #6
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Peux-tu montrer tes modifications ?
    En particulier l'entête (là où il y a écrit function ...) de la fonction refresh_plots.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    l'entête de mon fichier reflesh_plots est :

    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
    %
    % function refresh_plots
    %
    function out = refresh_plots(hh) 
     
    %
    % Récupère l'indice du mouillage
    %
    mi = get(hh.mouillage, 'Value');
     
    %
    % Récupère le paramètre à ploter
    %
    pi = get(hh.parametre, 'Value');
     
    %
    % Date de reference
    %
    ref_date = datenum('31.05.2004', 'dd.mm.yyyy');
     
    %
    % Vérifie si nouveau mouillage
    % Mise à jour
    %
    if hh.current_mooring ~= mi
        eval(['load EULER_' hh.descr_mooring.nom{mi} '.mat']);
        hh.current_mooring = mi;
        if exist('base_temps_c8', 'var')
            data_mooring.btc8 = base_temps_c8;
            data_mooring.P_c8 = P_c81;
            data_mooring.T_c8 = Thres_c81;        
            data_mooring.U8 = U81;
            data_mooring.Cap = Cap1;
            data_mooring.U_c8 = U_c81;
            data_mooring.V_c8 = V_c81;
        end
     
        if exist('base_temps_a', 'var')
            data_mooring.bta = base_temps_a;
            data_mooring.db = depth_bins;       
            data_mooring.btaa = btaa;
            data_mooring.P_a = P_a;
            data_mooring.T_a = T_a;
            data_mooring.Ua = Ua;
            data_mooring.Capa = Capa;
            data_mooring.U_a = U_a;
            data_mooring.V_a = V_a;
            data_mooring.W_a = W_a;
        end
     
        if exist('base_temps_sc', 'var')
            data_mooring.btsc = base_temps_sc;
            data_mooring.P_sc = P_sc;
            data_mooring.T_sc = T_sc;
            data_mooring.S_sc = S_sc;
        end
     
        if exist('base_temps_mc', 'var')
            data_mooring.btmc = base_temps_mc;
            data_mooring.P_mc = P_mc;
            data_mooring.T_mc = T_mc;
            data_mooring.S_mc = S_mc;
        end
     
        hh.data_mooring = data_mooring;
        guidata(gcf, hh); % Enregistrement de hh dans les données d'application de l'objet Figure
    end
    et les modifs :

    pour le fichier reflesh_plots :
    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
    if (strcmp(get(hObject, 'Tag'), 'cartesien'))
                        plot(hh.data_mooring.btc8, hh.data_mooring.U8(:,nb_rcm)*0.1)                
                        grid
                        ylim([0 80])
                        ylabel('cm/s')
                        title(hh.descr_mooring.instrum{mi}(i))
                        tl = get(gca, 'Xtick');
                        for k=1:length(tl)
                            xtl(k,:) = datestr(tl(k) + (ref_date),20);
                        end
                        set(gca,'Fontsize', 8, 'Xtick', tl, 'Xticklabel', xtl(:, 1:8))
                    else
                        [x,y] = pol2cart(hh.data_mooring.Cap(:,nb_rcm)*pi/180, hh.data_mooring.U8(:,nb_rcm)*0.1);
                        compass(x,y)
                    end
    pour le fichier visu_ovide (le fichier .m contenant les lignes de code du GUIDE) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    % --- Executes when selected object is changed in visualisation.
    function visualisation_SelectionChangeFcn(hObject, eventdata, handles)
    % hObject    handle to the selected object in visualisation 
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    if (hObject == handles.cartesien) 
        set(handles.visutype, 0)
    else
        set(handles.visutype, 1);
    end
    guidata(gcf, handles)
    refresh_plots(hObject, handles);

  8. #8
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Tu ne récupères pas toutes les données que tu passes à ta fonction refresh_plot, avec un entête comme ca ca devrait mieux marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function out = refresh_plots(hObject, handles)

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    aïe

    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
    ??? Undefined function or variable "hh".
     
    Error in ==> refresh_plots at 9
    mi = get(hh.mouillage, 'Value');
     
    Error in ==> visu_ovide>parametre_Callback at 110
    refresh_plots(handles);
     
    Error in ==> gui_mainfcn at 95
            feval(varargin{:});
     
    Error in ==> visu_ovide at 42
        gui_mainfcn(gui_State, varargin{:});
     
    ??? Error using ==> visu_ovide('parametre_Callback',gcbo,[],guidata(gcbo))
    Undefined function or variable "hh".
     
    ??? Error while evaluating uicontrol Callback

  10. #10
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Je crois qu'il va falloir te pencher sur la manipulation des variables et leur nommage...

    Effectivement la variable hh n'existe plus puisque dans "mon" entête je l'ai nommée "handles", il suffit de remplacer l'un ou l'autre pour que ca soit cohérent...

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    et non j'ai essayé mais ça ne marche quand même pas :

    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
    ??? Input argument "hh" is undefined.
     
    Error in ==> refresh_plots at 9
    mi = get(hh.mouillage, 'Value');
     
    Error in ==> visu_ovide>parametre_Callback at 110
    refresh_plots(handles);
     
    Error in ==> gui_mainfcn at 95
            feval(varargin{:});
     
    Error in ==> visu_ovide at 42
        gui_mainfcn(gui_State, varargin{:});
     
    ??? Error using ==> visu_ovide('parametre_Callback',gcbo,[],guidata(gcbo))
    Input argument "hh" is undefined.
     
    ??? Error while evaluating uicontrol Callback
    alors que mon entête est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function out = refresh_plots(hObject, hh)

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    il me met aussi une erreur lorsque je charge 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
    >> clear all
    >> close all
    >> moorings
    ??? Error using ==> feval
    Undefined function or method 'visualisation_CreateFcn' for input arguments of type 'double'.
     
    Error in ==> gui_mainfcn at 95
            feval(varargin{:});
     
    Error in ==> visu_ovide at 42
        gui_mainfcn(gui_State, varargin{:});
     
    ??? Error using ==> visu_ovide('visualisation_CreateFcn',gcbo,[],guidata(gcbo))
    Error using ==> feval
    Undefined function or method 'visualisation_CreateFcn' for input arguments of type 'double'.
     
    ??? Error using ==> struct2handle
    Error while evaluating uipanel CreateFcn

  13. #13
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Ah oui...

    Mais la le problème vient de ton appel à la fonction:
    Citation Envoyé par MatLab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Error in ==> visu_ovide>parametre_Callback at 110
    refresh_plots(handles);
    Alors que ton entête vaut:
    Citation Envoyé par tchabalabala
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function out = refresh_plots(hObject, hh)
    Donc hh n'a pas de valeaur, donc c'est normal qu'il n'apprécie pas

  14. #14
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Citation Envoyé par tchabalabala Voir le message
    il me met aussi une erreur lorsque je charge 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
    >> clear all
    >> close all
    >> moorings
    ??? Error using ==> feval
    Undefined function or method 'visualisation_CreateFcn' for input arguments of type 'double'.
    
    Error in ==> gui_mainfcn at 95
            feval(varargin{:});
    
    Error in ==> visu_ovide at 42
        gui_mainfcn(gui_State, varargin{:});
    
    ??? Error using ==> visu_ovide('visualisation_CreateFcn',gcbo,[],guidata(gcbo))
    Error using ==> feval
    Undefined function or method 'visualisation_CreateFcn' for input arguments of type 'double'.
    
    ??? Error using ==> struct2handle
    Error while evaluating uipanel CreateFcn
    Est-ce que tu es sur que la fonction 'visualisation_CreateFcn' existe dans ton fichier?

  15. #15
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Euh, ça va peut-être pas te plaire mais là franchement c'est tout mélangé et ça part dans tous les sens, il vaudrait mieux tout remettre à plat

    La dernière erreur semble montrer que tu as du modifier le code créé par GUIDE et supprimer des choses qu'il ne fallait pas.
    Ensuite il semble que tu n'as pas vraiment assimilé le fonctionnement de SET/GET, des handles...
    Un petit tour par les tutoriels sur les interfaces graphiques peut-être : Interfaces Graphiques (GUI)

    Après pour les arguments d'entrée/sortie des fonctions c'est un peu la base du fonctionnement des fonctions dans MATLAB.
    Parce que là on ne va pas s'en sortir si tu nous met des erreurs à la pelle à chaque fois nouvelles en modifiant des morceaux de code sans vraiment comprendre ce que tu fais.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    Merci pour vos aides, je commence à comprends mieux.
    Juste une petite question...

    Apparement la fonction Value n'existe pas dans les propriétés de uibuttongroup.
    Comment alors écrire le test pour différencier les deux radio buttons?

    Voici mon 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
    % --- Executes during object creation, after setting all properties.
    function visualisation_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to visualisation (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
     
    % --- Executes when selected object is changed in visualisation.
    function visualisation_SelectionChangeFcn(hObject, eventdata, handles)
    % hObject    handle to the selected object in visualisation 
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    if hObject == handles.cartesien
        set(handles.visualisation,'Value', 0 );
    else
        set(handles.visualisation,'Value', 1);
    end
    et l'erreur qu'il en sort :

    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
    ??? There is no 'value' property in the 'uibuttongroup' class.
     
    Error in ==> visu_ovide>visualisation_SelectionChangeFcn at 144
        set(handles.visualisation,'value', 0 );
     
    Error in ==> gui_mainfcn at 95
            feval(varargin{:});
     
    Error in ==> visu_ovide at 42
        gui_mainfcn(gui_State, varargin{:});
     
    Error in ==> hgfeval at 65
            evalin('base', fcn);
     
    Error in ==> uitools.uibuttongroup.childAddedCbk>manageButtons at 80
        hgfeval(cbk, source, evdata);
     
    ??? Error while evaluating uicontrol Callback

  17. #17
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    D'après l'aide la fonction UIBUTTONGROUP, je dirais que la propriété SelectedObject doit convenir à ce que tu cherches

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if hObject == handles.cartesien
        h=get(handles.visualisation,'SelectedObject');
        set(h,'Value', 0 );
    else
        h=get(handles.visualisation,'SelectedObject');
        set(h,'Value', 1 );
    end
    le code est bon?
    je n'ai plus de message d'erreur à propos de ce programme en tout cas!
    (mais je ne peux pas encore vérifier si ça marche bien car j'ai une autre erreur, du à un appel de fonction que je ne maîtrise pas encore)

  19. #19
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Citation Envoyé par tchabalabala
    Le code est bon?
    Oui, la syntaxe est correcte mais je vois pas bien ce que tu souhaites faire, normalement la valeur de ton objet change toute seule lorsque tu cliques dessus, il n'est donc pas nécessaire (voir même déconseillé) de la modifier toi-même (c'est tout l'intérêt de l'objet UIBUTTONGROUP).

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    car dans mon programme qui se trouve dans un autre fichier .m je réalise un test pour lui dire quelle visulation réaliser lorsque on clique sur un des boutons...

    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
    val = get(h,'Value');
                    if val == 0
                        plot(hh.data_mooring.btc8, hh.data_mooring.U8(:,nb_rcm)*0.1)                
                        grid
                        ylim([0 80])
                        ylabel('cm/s')
                        title(hh.descr_mooring.instrum{mi}(i))
                        tl = get(gca, 'Xtick');
                        for k=1:length(tl)
                            xtl(k,:) = datestr(tl(k) + (ref_date),20);
                        end
                        set(gca,'Fontsize', 8, 'Xtick', tl, 'Xticklabel', xtl(:, 1:8))
                    else
                        [x,y] = pol2cart(hh.data_mooring.Cap(:,nb_rcm)*pi/180, hh.data_mooring.U8(:,nb_rcm)*0.1);
                        compass(x,y)

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/01/2012, 10h14
  2. Code pour changer groupe utilisateurs?
    Par sash6 dans le forum Sécurité
    Réponses: 2
    Dernier message: 20/11/2009, 10h33
  3. code pour un Command Button
    Par gillesa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/02/2008, 17h51
  4. Réponses: 2
    Dernier message: 01/04/2003, 22h09
  5. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29

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