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 :

interaction souris graphique


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 245
    Par défaut interaction souris graphique
    encore une question d'un truc que j'avais réussi à faire à une époque mais que j'arrive plus à faire ...

    j'ai un gui avec une image dedans (une gui axes).
    je voudrais pouvoir afficher les coordonnées des points et leurs valeurs quand la souris passe dessus.

    du coup je veux utiliser le "WindowButtonMotionFcn"

    j'ai tenté des trucs comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    axes_id = get(gcf,'CurrentAxes');
    j'ai essayé de rajouté un children vu ce que j'ai vu dans les anciens posts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    axes_id = get(axes_id,'Children');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    axes_id = findobj(allchild(0), 'tag', 'image_displayed'
    et après je fais un set :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(axes_id_id, 'WindowButtonMotionFcn',@image_displayed_WindowButtonMotionFcn);
    j'ai essayé aussi le set que j'avais la dernière fois mais j'arrive plus à me rappeler pourquoi j'avais fait un truc si compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(axes_id, 'WindowButtonMotionFcn','lung_function(''image_displayed_WindowButtonMotionFcn'',gcbo,[],guidata(gcbo))');
    sachant que ma fonction que ça appelle est introduite de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function image_displayed_WindowButtonMotionFcn(hObject, eventdata, handles)
    avec le findobj j'ai pas d'erreur mais ça fait rien ....

    avec le get(gcf...) children ou pas children ça me répond que
    windowbuttonmotionfcn n'existe pas pour ce type d'objet ...

    quelqu'un a une idée de ce qu'il faut que je modifie ?

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

    Citation Envoyé par svagrim Voir le message
    avec le get(gcf...) children ou pas children ça me répond que
    windowbuttonmotionfcn n'existe pas pour ce type d'objet ...
    Ceci est normal : seul l'objet Figure possède l'évènement WindowButtonMotionFcn.

    Il faudra donc faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(gcf , 'WindowButtonMotionFcn',@image_displayed_WindowButtonMotionFcn);
    ton autre forme est en effet affreuse, oublie-là

    Attention toutefois le troisième argument handles ne sera pas passé, il te faudra le récupérer avec guidata et gcbf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function image_displayed_WindowButtonMotionFcn(hObject, eventdata)
     
    handles = guidata(gcbf);
    Le problème se pose alors de ne pas afficher les coordonnées lorsque la souris est en dehors de ton image. Il faudra donc comparer la position de la souris avec cette de ton image.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 245
    Par défaut
    oki merci

    une petite question suplémentaire.
    je peux avoir deux images d'affichés sur mon gui.

    gcf prendra en compte la dernière qui a été affiché c'est ça ?
    et si je veux qu'ils prennent en compte l'autre j'ai qu'à réactualiser l'autre image pour qu'elle soit la dernière affichée c'est ça ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Attention : gcf renvoie le handle de l'objet Figure et non Axes.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 245
    Par défaut
    oki du coup handles est une structure avec tous les gui apparemment.

    la où j'ai un problème maintenant c'est avec le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temp = get(gcf,'CData')
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temp = get(handles.image_displayed,'CData')
    image_displayed = tag de la gui axes.
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temp = get(gcbf, 'CData');
    et la ça me dit que CData n'existe pas avec des objets figure et axes.
    du coup il faut que je lui donne quoi ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    GUI == objet Figure oui

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/04/2018, 16h02
  2. Interface graphique interactive
    Par frenchee dans le forum Périphériques
    Réponses: 2
    Dernier message: 02/01/2008, 15h22
  3. [java3d] interaction Souris
    Par tompalmeras dans le forum 3D
    Réponses: 3
    Dernier message: 10/05/2007, 14h46
  4. liste graphique + drag and drop et interaction elements
    Par TabrisLeFol dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 21/02/2006, 22h15
  5. Décalage graphique et souris
    Par Sub0 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 27/06/2003, 09h44

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