Returning which button was pressed.

Hi guys, I have been looking for a while but cant seem to find an answer. If i use something like:
waitforbutttonpress
can I return the button which was pressed? for example:
button = waitforbuttonpress
if button == rightMouse
methodOne
elseif button == leftMouse
methodTwo
else
break
end

1 Commento

It will not work. You cannot exit from loop this way. You only can start loop as one of the methods, However, if you start loop[ you will not be able to stop evaluation by mouse click because decision is outside the loop.

Accedi per commentare.

 Risposta accettata

f = figure(1);
click_type=get(f,'SelectionType');
if strcmp(click_type,'normal') %right click
%Do some stuff
elseif strcmp(click_type,'alt') %left click
%Do some other stuff
end

4 Commenti

Tim Mottram
Tim Mottram il 26 Ott 2012
Modificato: Tim Mottram il 26 Ott 2012
Ok, this looks like the sort of thing I need. Can you tell me if I need to use the figure as a reference? I.E does the click always have to be on that figure? Can I use some sort of general:
button = ButtonDown
instead?
Also, Will the code pause on the click_type statement or do I write:
f = figure(1);
waitforbuttonpress
click_type = get(f,'SelectionType');
??
As far as I know, the click needs to be in the figure axes.
Answered my own question. if you want it to wait you need waitforbuttonpress.
This worked perfectly thanks for all your help :)

Accedi per commentare.

Più risposte (1)

Sachin Ganjare
Sachin Ganjare il 26 Ott 2012

0 voti

1 Commento

Thanks for the help, I'm not using a GUI but I'll have a look and see if I can modify something :).

Accedi per commentare.

Categorie

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by