我有一个带有许多按钮的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的值会发生变化。 所以&&操作员永远不会满满。
答案 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