如何检查在Matlab中按下的两个键?

时间:2014-07-30 14:26:28

标签: matlab keypress matlab-figure matlab-guide

我有一个带有许多按钮的Matlab GUI。现在我想为按钮设置一些切片。 实际上我可以检查一个按钮,它工作正常。 我的问题是如何检查是否按下两个按钮?

像CTRL + KEY这样的东西。 它不能是CTRL键=)它可以是任何组合键。

感谢您的帮助。 抱歉我的英文。

要检查一个密钥,我使用此代码:

key1 = get(gcf,'CurrentKey');

if(strcmp (key1 ,'k'))
%CODE HERE
end

我尝试过这样的事情(对于键k和q):

key2 = get(gcf,'CurrentKey');

keystr = [key1 + key2];

if(strcmp(keystr, 'kq'))
%CODE HERE
end

如果按键盘上的其他按钮,则key1的值会发生变化。 所以&&操作员永远不会满满。

1 个答案:

答案 0 :(得分:1)

它不是完全通用的,但我认为这应该可以解决问题:

首先确定是否按下了控件as shown by @Pursuit(可能适用于多个键)

modifiers = get(gcf,'currentModifier');        
ctrlIsPressed = ismember('control',modifiers);

然后只需检查当前密钥,就像您已经做的那样并合并结果。最后它看起来像这样:

modifiers = get(gcf,'currentModifier');        
key1 = get(gcf,'CurrentKey');

if(strcmp (key1 ,'k')) && ismember('control',modifiers)
    %CODE HERE
end