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 个评论

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.

请先登录,再进行评论。

 采纳的回答

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 个评论

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 :)

请先登录,再进行评论。

更多回答(1 个)

Sachin Ganjare
Sachin Ganjare 2012-10-26

0 个投票

1 个评论

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

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Desktop 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by