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 :

Programmation popupmenu


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut Programmation popupmenu
    Bonjour,

    J'ai actuellement le même problème que dans cette discussion et je me demandais comment programmer la popupmenu sachant que toute les données et toutes les actions se font dans la fonction du pushbutton?

    Merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut Programme
    Afin de mieux situer mon problème,dans mon interface,j'ai un pushbutton sur lequel je clique pour sélectionner les données à visualiser (sélection de 2 fichiers,chacun contenant 24 volumes) et un popupmenu qui me permet de choisir parmi 3 types de coupes a visualiser.
    Actuellement je peux visualiser les données,mais à chaque fois que je sélectionne un type de coupe je dois resélectionner les volumes.
    Toutes les fonctionnalités sont définies dans la pushbutton function.Je n'ai rien défini dans le popupmenu.

    Le programme est le suivant:

    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
    function pushbutton1_Callback(hObject, eventdata, handles)
     
    %% Center of the volume
     
    z = 6;
    y = 129;
    x = 110;
     
    %% Loading of  files for true data of patient 1
    %% Displaying images of 2 patients
    [File,PathName]  = uigetfile('*.','Load','MultiSelect','on');
    [File1,PathName1]  = uigetfile('*.','Load','MultiSelect','on');
    L=get(handles.popupmenu1,'Value');
     
    for n=1:24
        [M(:,:,:,n),sign(:,n),O(:,n), AxisX(:,n), AxisY(:,n), AxisZ(:,n), Extent(:,n)] = readICS([PathName char(File(:,n))]);
        h = subplot(1,2,1,'Parent',handles.uipanel1,'position',[.1, .1, .3, .7]); colormap gray ;axis off;
     
        I1 = squeeze(M(x,:,:,n));
        I2 = squeeze(M(:,y,:,n));
        I3 = squeeze(M(:,:,z,n));
     
        Iseq1(:,:,n) = I1;
        Iseq2(:,:,n) = I2;
        Iseq3(:,:,n) = I3;
     
        I11= imresize(Iseq1(:,:,n),[256 80],'cubic');
        I12= imresize(Iseq2(:,:,n) ,[256 80],'cubic');
        I13= imresize(Iseq3(:,:,n),[256 256],'cubic');
     
        if (L==1)
            imagesc(I12, 'Parent', h);
            pause(.1)
     
        elseif (L==2)
            imagesc(I11, 'Parent', h);
            pause(.1)
     
        elseif (L==3)
            imagesc(I13, 'Parent', h);
            pause(.1)
        end
     
        handles.M1 = M;
     
        hold on
     
        [M(:,:,:,n),sign(:,n),O(:,n), AxisX(:,n), AxisY(:,n), AxisZ(:,n), Extent(:,n)] = readICS([PathName1 char(File1(:,n))]);
     
        h = subplot(1,2,2,'Parent',handles.uipanel1,'position',[.6, .1, .3, .7]); colormap('gray');axis off;
     
        I1 = squeeze(M(x,:,:,n));
        I2 = squeeze(M(:,y,:,n));
        I3 = squeeze(M(:,:,z,n));
     
        Iseq1(:,:,n) = I1;
        Iseq2(:,:,n) = I2;
        Iseq3(:,:,n) = I3;
     
        I11= imresize(Iseq1(:,:,n),[256 80],'cubic');
        I12= imresize(Iseq2(:,:,n) ,[256 80],'cubic');
        I13= imresize(Iseq3(:,:,n),[256 256],'cubic');
     
        if (L==1)
            imagesc(I12, 'Parent', h);
            pause(.1)
     
        elseif (L==2)
            imagesc(I11, 'Parent', h);
            pause(.1)
     
        elseif (L==3)
            imagesc(I13, 'Parent', h);
            pause(.1)
        end
     
        handles.M2 = M;
    end
     
    handles.load = 1;
    guidata(hObject, handles);

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

    J'aurais pensé à créer une fonction "update" contenant le code que tu as actuellement dans la fonction callback de ton pushbutton et l’appeler depuis celle-ci ainsi que celle de ton popupmenu. Quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function tonPushbutton_Callback(hObject, eventdata, handles)
     
    update(handles)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function tonPopupmenu_Callback(hObject, eventdata, handles)
     
    update(handles)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function update(handles)
     
    % code
    Remarques :
    • guidata(gcbf, handles); est plus correct.
    • hold on : Si tu possèdes plusieurs objets Axes, il est bon de spécifier auquel s'applique ceci :
      hold(handles.tonAxes,'on')
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      [M(:,:,:,n),sign(:,n),O(:,n), AxisX(:,n), AxisY(:,n), AxisZ(:,n), Extent(:,n)] = readICS([PathName1 char(File1(:,n))]);
      sign, variable que tu utilises, est aussi une fonction MATLAB : chose à éviter. Je t'invite à lire ceci.
    • Pense à donner des noms plus explicites à tes objets (Tags).

Discussions similaires

  1. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  3. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  4. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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