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 :

Utilisation de la molette de la souris


Sujet :

Interfaces Graphiques

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Utilisation de la molette de la souris
    Bonjour,
    Est il possible d'utiliser la roue de la souris dans un GUI? Si oui, comment faire?
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 951
    Points
    52 951
    Par défaut
    Lis cette discussion en anglais : Utilising the wheel on a mouse (7ème message)

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 951
    Points
    52 951
    Par défaut
    Et cette contribution sur le FEX : event dispatching

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    En fait je suis desolé, mais etant debutant je ne comprends pas grand chose a ca...
    J'ai copié la fonction setMouseWheel.m dans mon repertoire. Maintenant je voudrais que lorque l utilisateur de mon GUI utilise la Mouse Wheel, une des valeurs d'un 'edit' soit modifiée.
    Comment faire appel a une fonction lorsque la roue est utilisee?

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 951
    Points
    52 951
    Par défaut
    Voici la fonction setMouseWheel :
    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
    function setMouseWheel(fcn,HWIN)
    % setMouseWheel - set callback for mouseWheel for figure
    %
    % INPUT
    % fcn: calbback function
    % HWIN: handle of figure
    %
    %TESTED WITH
    % matlab 7.0.1
    %
    % Nanne van der Zijpp
    % Modelit
    % www.modelit.nl
     
    if nargin<1
        fcn=@testcallback
    end
    if nargin<2
        HWIN=gcf;
    end
     
    %get RootPane for specified fure
    RootPane=getRootPane(HWIN);
    setappdata(HWIN,'RootPane',RootPane); %bind RootPane to prevent if from being destroyed
    set(RootPane,'MouseWheelMovedCallback',fcn)
    %--------------------
    function testcallback(varargin)
     
    fprintf('testcallback called with %d input arguments',length(varargin));
    for k=1:length(varargin)
        fprintf('argument %d:',k);
        disp(varargin{k});
    end
    %--------------------
    function RootPane=getRootPane(HWIN)
    %get RootPane for specified figure
     
    if nargin<1
        HWIN=gcf;
    end
    %create invisible dummy java object and wrap it in a java component
    jobj=javax.swing.JLabel;
    jobj.setOpaque(0);
     
    [jobj,h] = javacomponent(jobj,[],HWIN);
    RootPane=[];
    T0=now;
    while isempty(RootPane)
        pause(.01);
        RootPane=jobj.getRootPane;
        if (now-T0)*60*1440 > 1
            error('Time out while retreiving root pane');
        end
    end
    delete(h);
    Et une petite fonction test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function test
     
    fig=figure;
     
    cb=@setColor;
     
    setMouseWheel(cb,fig)
     
    function setColor(varargin)
     
    set(gcf,'color',rand(1,3));
    Ce code fonctionne très bien sauf avec les versions de MATLAB à partir de la R2006b

    Il doit y avoir eu des modifications sur la gestion des objets Java entre la version R2006a et la R2006b.

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Ayeaye...j'ai la version R2006b
    En fait quand je lance la fonction setMouseWheel ca ouvre une fenetre, mais il se passe rien quand je bouge la mousewheel
    Merci quand meme pour ton aide

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 951
    Points
    52 951
    Par défaut
    Je n'avais même pas vu qu'une propriété WindowScrollWheelFcn existait pour les objets Figure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    fig=figure;
     
    set(fig,'WindowScrollWheelFcn','set(gcf,''color'',rand(1,3))')
    Note : cette propriété a été introduite dans la version R2007a de MATLAB

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/02/2015, 23h22
  2. code pour utiliser la molette de la souris ?
    Par charif591 dans le forum Bibliothèques, systèmes et outils
    Réponses: 5
    Dernier message: 02/11/2012, 09h54
  3. [VB.NET]Utilisation de la molette souris avec un Panel
    Par Mayamok dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/09/2006, 15h38
  4. Utiliser la molette de la souris
    Par systemofaxav dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/05/2006, 16h54
  5. Réponses: 1
    Dernier message: 04/04/2006, 14h28

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