我认为这可能是一个简单的问题。
基本上,我有一个(连续的)滑块,我在MATLAB中实现了。如果我单击滑块并滑动标签,我会得到我想要的东西等等。这很好。
现在,向上/向下/向左/向右箭头键也使滑块滑动。但是,我不想让滑块移动,但我想将它们用于其他东西。那么,当按下箭头键时,如何阻止滑块移动滑动标签,以便我可以将它们用于其他内容?
谢谢。
答案 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 的答案可能也有效,但我没有尝试。