make the XTickLabel mouse sensitive in UIAxes

2 次查看(过去 30 天)
hi
i would like to make the XTickLabel entries (or Y or Z dimension) mouse sensitive in UIAxes. pressing a mouse left on a label should callback a function.
thanks a lot !!!
mat
  6 个评论
Adam Danz
Adam Danz 2021-1-19
编辑:Adam Danz 2021-1-19
Well, you could replace the uiaxes with regular axes which support the ButtonDownFcn in 19a.
Shlomi Bejerano
Shlomi Bejerano 2021-1-19
as a last resort.. :)
thanks a lot for all your prompt replies and suggestions !!

请先登录,再进行评论。

采纳的回答

Adam Danz
Adam Danz 2021-1-17
编辑:Adam Danz 2021-1-18
This demo uses a ButtonDownFcn function on the axes to detect when the left mouse button selects an x-tick label. The selection updates the axis title. Requires Matlab r2020b or later.
% Create demo UI Figure
fig = uifigure();
ax = uiaxes(fig);
ax.ButtonDownFcn = @axisButtonDownFcn;
function axisButtonDownFcn(ax, event)
% Responds to mouse click on axes. If click is above the lower y-axis
% there is no action. If the click is on or around the x-axis ticks,
% the nearest tick is located. Only accepts left mouse clicks.
% Only accept left mouse clicks
if event.Button ~= 1
return
end
% Only accepts clicks lower than min(ylim)
if event.IntersectionPoint(2) > min(ax.YLim)
return
end
% Get closest x-tick to the click
[~, tickIdx] = min(abs(ax.XTick - event.IntersectionPoint(1)));
tickSelected = ax.XTick(tickIdx);
% Update axis title to indicat tick selected
ax.Title.String = sprintf('x=%.4g selected', tickSelected);
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by