1

是否可以在鼠标移到按钮上以及鼠标离开按钮时捕获鼠标悬停事件(不涉及单击)。使用数字很容易做到这一点,使用WindowButtonMotionFcn. 但是,对于我不知道的按钮或其他类型的对象。

4

2 回答 2

1

虽然我认为如果你很聪明的话,直接用 UIControls 注册回调是不可能的,但实际上并不需要。它有点额外的工作,但如果您知道图中按钮的位置,您可以检查鼠标光标是否在按钮上方并让您的 UI 做出相应的响应。

要记住的一件事是,如果您使用Normalized单位创建按钮,则在调整图形大小时必须重新计算它们的位置。您可以使用resizeFcn图形的属性来执行此操作。注册一个执行如下操作的回调:

u = get(button, 'Units');
set(button,'Units');
buttonPosition = get(button,'Position');
set(button, 'Units', u);

虽然这不能为您提供您正在寻找的确切解决方案,但它应该足以为您提供您想要实现的功能。

于 2012-08-09T00:10:58.120 回答
1

您可以使用 WindowButtonMotionFcn 在要执行的操作上添加自己的回调函数。

set(gcf,'WindowButtonMotionFcn ',your_callback);

如果你用谷歌搜索它,你可能会找到更多信息,下面的链接显示了一些你可以使用数字的东西。如果您知道按钮 pos 和光标 pos,那么您总是可以这样编写测试。

http://www.mathworks.com/help/techdoc/ref/figure_props.html

于 2012-08-09T13:54:53.257 回答