选择绘图对象时,未执行轴ButtonDownFcn

时间:2016-06-07 16:10:23

标签: matlab user-interface matlab-figure mouseclick-event

我正在创建一个实时MATLAB演示,我需要通过点击axes来选择一个感兴趣的点。通常,系统工作正常,我可以使用ButtonDownFcn修改变量。但是会出现以下问题

当我在同一轴上绘制其他数据(例如散点图)时,如果我单击散点图而不是ButtonDownFcn,那么似乎不会触发axes没有情节。没有错误。

这是一个问题,因为我的散点图非常密集,我想要点击的点位于绘图对象的下方。

我如何才能使所有鼠标点击都由axes注册,以便每次点击都会执行ButtonDownFcn

1 个答案:

答案 0 :(得分:1)

您希望利用HitTest property禁用所有其他图形对象响应鼠标点击的功能。

如果您只想启用axes上的点击,那么这应该有效。

% Disable callbacks for all objects within the current axes
set(findall(gca), 'HitTest', 'off')

% Enable click events for the axes and set the buttondownfcn
set(gca, 'HitTest', 'on', 'ButtonDownFcn', callback)