Can I use ButtonDownFcn on a figure axes not associated with a gui?

조회 수: 1 (최근 30일)
Art
Art 2015년 9월 11일
댓글: Art 2015년 9월 11일
Using 2014b, I have a script that creates a figure with three axes, and plots some lines and a legend on each.
When the user clicks or zooms on one of the axes, I want it to call a certain function. I am attempting to use ButtonDownFcn for this, but the function is not being called.
I set all axes children to have HitTest off, and verified this is the case.
The code I use when creating the figure is:
set(fig_handle.CurrentAxes,'ButtonDownFcn', @set_ticks)
What am I doing wrong?

채택된 답변

Walter Roberson
Walter Roberson 2015년 9월 11일
Zoom and Pan mode replace the ButtonDownFcn with their own. For a broad range of versions before R2014b a work-around was known involving turning off a setting that was preventing the callbacks from being changed back. With Handle Graphics 2 in R2014b the way that Zoom and Pan work changed, and I have not yet heard any method to achieve this purpose (there might be one, I just might not have encountered it.)
  댓글 수: 1
Art
Art 2015년 9월 11일
Thanks! I did some searching and trial and error and found this:
hpan = pan(fig_handle);
hpan.ActionPostCallback = @set_ticks;
hzoom = zoom(fig_handle.CurrentAxes);
hzoom.ActionPostCallback = @set_ticks
This works perfectly (I have the function insert text for the XTickLabels at the current auto-generated tickmarks, and reset them to the current XTicks if the axes is zoomed or panned)

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

추가 답변 (1개)

Art
Art 2015년 9월 11일
So apparently my code IS working, but doesn't work when I have the Zoom or Pan buttons enabled. Is there a way to make ButtonDownFcn work from botton presses that originate from Zoom or Pan?

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by