Bonjour,
Est il possible d'utiliser la roue de la souris dans un GUI? Si oui, comment faire?
Merci
Bonjour,
Est il possible d'utiliser la roue de la souris dans un GUI? Si oui, comment faire?
Merci
Lis cette discussion en anglais : Utilising the wheel on a mouse (7ème message)
Et cette contribution sur le FEX : event dispatching
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?
Voici la fonction setMouseWheel :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
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);Ce code fonctionne très bien sauf avec les versions de MATLAB à partir de la R2006b
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));
Il doit y avoir eu des modifications sur la gestion des objets Java entre la version R2006a et la R2006b.
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
Je n'avais même pas vu qu'une propriété WindowScrollWheelFcn existait pour les objets Figure
Note : cette propriété a été introduite dans la version R2007a de MATLAB
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))')
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager