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 :

probleme avec uicontextmenu


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Par défaut probleme avec uicontextmenu
    Salut
    j'ai affiché une image sous matlab puis je selectionne une apartie je veux colorer cette parie soit en rouge soit en bleu si je fais un right clik j'ai 2 menus rouge et bleu .
    Voici mon code mais je ne sais pas ou existe la faute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    I =imread(NomFich); 
    hIm=imshow(I);% Afficher l'image 
    hSP = imscrollpanel(untitled2,hIm);
    set(hSP,'Units','normalized',...
      'Position',[0 0.1 0.7 1]);
    h=impoly();
    pos=getPosition(h);
                cmenu = uicontextmenu();
                item1 = uimenu(cmenu, 'Label', 'Red', 'Callback',fill(pos(:,1),pos(:,2),'r'));  
                item2 = uimenu(cmenu, 'Label', 'Blue', 'Callback', fill(pos(:,1),pos(:,2),'b'));

  2. #2
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 56
    Par défaut
    Plusieurs remarques :
    - Dans la définition de tes callbacks, tu as des quotes ', donc tu as un probleme de syntaxe. Il vaut mieux utiliser des handles de fonction.
    - Lors de l'exécution de ton menu, "pos" n'est pas forcément adapté car la position a pu changer depuis la création du menu, il faut donc passer ton "handle" de impoly en paramètre.
    - toutes les classes dérivées de imroi (impoly en fait partie) ont déjà un menu contextuel : soit tu le récupères et tu ajoutes des éléments, soit tu l'écrases. L'objet imroi (impoly ici) n'a pas de propriété UIContextMenu : il faut récupérer tous les enfants de imroi pour leur associer le menu contextuel.

    Voici ce que ca donne en essayant rapidement:
    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
     
    function test
    fig=gcf
    hold off
    hIm = imshow('cameraman.tif');
    hSP = imscrollpanel(fig,hIm);
    set(hSP,'Units','normalized',...
      'Position',[0 0.1 0.7 1]);
     
    hold on %sinon "fill" va écraser l'image
    h=impoly();
     
    %fonction non documentée pour tous les imroi, susceptible d'évoluer avec les futures versions...
    hchild = findobj(h,'Type','line','-or','Type','patch'); 
     
    cmenu = get(hchild(1),'UiContextMenu'); % pour conserver le menu existant
    %cmenu = uicontextmenu('Parent',fig); % ou pour l'écraser
     
    item1 = uimenu(cmenu, 'Label', 'Red', 'Callback',{@FillColor,h,'r'});
    item2 = uimenu(cmenu, 'Label', 'Blue', 'Callback',{@FillColor,h,'b'});
     
    set(hchild,'UIContextMenu',cmenu); %pour associer le menu contextuel aux enfants de l'impoly
     
    function FillColor(hObject,eventdata,hImPoly,color)
    pos=getPosition(hImPoly);
    fill(pos(:,1),pos(:,2),color);

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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