필터 지우기
필터 지우기

mouse button click

조회 수: 21 (최근 30일)
tomas
tomas 2011년 6월 10일
답변: Conny Fru 2019년 9월 25일
Hello, is it somehow possible to distinguish which mouse button was pressed, left or right?
Thank you

채택된 답변

Matt Tearle
Matt Tearle 2011년 6월 10일
The figure has a property 'SelectionType'. This will have the value 'normal' for a left-click, and 'alt' for a right-click.
For more, see the doc: MATLAB -> User's Guide -> HG Property Browser -> Figure -> SelectionType
Example:
function mybttnfcn(h,~)
hf = get(h,'parent');
b = get(hf,'selectiontype');
xy = get(gca,'CurrentPoint');
if strcmpi(b,'normal')
text(xy(1,1),xy(1,2),'Left click')
elseif strcmpi(b,'alt')
text(xy(1,1),xy(1,2),'Right click')
else
text(xy(1,1),xy(1,2),'Careful there, crazy man!')
end
Then try something like:
figure
plot(rand(5))
set(gca,'buttondownfcn',@mybttnfcn)
  댓글 수: 2
tomas
tomas 2011년 6월 10일
Thank you, that's what I need.
roudan
roudan 2017년 11월 9일
wow, Matt Tearle, that is really helpful to me. I google it and find your post. Thanks
But I like to change 2D line plot to be 2D point plot and assign a value for each individual point, then extract the value for each point when clicking on the point, how to do that? I don't want to extract XY value. Thanks, I appreciate your help.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Sean de Wolski
Sean de Wolski 2011년 6월 10일
Yes. Look at the third output of ginput
doc ginput
  댓글 수: 1
tomas
tomas 2011년 6월 10일
Thanks for your answer. I forgot to write that I need to do it in GUI and don't want to use crosshairs. It should be interactive. Is it possible to do it by using buttondownfcn? I want my gui does something after pressing left button and something else after pressing right button.

댓글을 달려면 로그인하십시오.


Conny Fru
Conny Fru 2019년 9월 25일
Cheers Matt.

카테고리

Help CenterFile Exchange에서 Visual Exploration에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by