按下箭头键时,不要滑动MATLAB滑块

时间:2013-10-30 01:12:28

标签: matlab user-interface slider

我认为这可能是一个简单的问题。

基本上,我有一个(连续的)滑块,我在MATLAB中实现了。如果我单击滑块并滑动标签,我会得到我想要的东西等等。这很好。

现在,向上/向下/向左/向右箭头键也使滑块滑动。但是,我不想让滑块移动,但我想将它们用于其他东西。那么,当按下箭头键时,如何阻止滑块移动滑动标签,以便我可以将它们用于其他内容?

谢谢。

3 个答案:

答案 0 :(得分:1)

这样做是因为当您单击滑块时,滑块会获得焦点。

在滑块回调中,在通话结束时:

set(hObject, 'Enable', 'off');
drawnow;
set(hObject, 'Enable', 'on');

这会强制滑块失去焦点。这非常黑客但应该有用。

答案 1 :(得分:0)

另一种不调用(慢)drawow函数的解决方案,因为滑块回调似乎是在焦点处按下键时连续调用的,是使用java并请求焦点到滑块回调中的不同组件。像这样的东西(我把注意力转移到一个无害的uipanel):     jhUipanel = findjobj(hUipanel);     jhUipanel.requestFocus;

答案 2 :(得分:0)

这里有一个很好的答案:

https://www.mathworks.com/matlabcentral/answers/33224-gui-figure-focus

jPeer = get(handle(gcf), 'JavaFrame');
jPeer.getAxisComponent.requestFocus;

如果您下载 Yair 的 findjobj 函数,Guest36 的答案可能也有效,但我没有尝试。