make the XTickLabel mouse sensitive in UIAxes

2 visualizzazioni (ultimi 30 giorni)
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 Commenti
Adam Danz
Adam Danz il 19 Gen 2021
Modificato: Adam Danz il 19 Gen 2021
Well, you could replace the uiaxes with regular axes which support the ButtonDownFcn in 19a.
Shlomi Bejerano
Shlomi Bejerano il 19 Gen 2021
as a last resort.. :)
thanks a lot for all your prompt replies and suggestions !!

Accedi per commentare.

Risposta accettata

Adam Danz
Adam Danz il 17 Gen 2021
Modificato: Adam Danz il 18 Gen 2021
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

Più risposte (0)

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by