Como verificar DOIS tecla pressionada no Matlab?
-
21-12-2019 - |
Pergunta
Eu tenho um Matlab GUI com muitos botões.Agora eu quero estabelecer alguns shotcuts para o botão.Na verdade, eu posso verificar para um botão e ele funciona muito bem.Meu questin é como eu posso verificar se dois botões de imprensa?
Algo como CTRL + TECLA.Ele não deve a tecla CTRL =) poderia ser qualquer combinação de teclas.
Obrigado pela ajuda.Desculpe pelo meu inglês.
Para verificar se uma chave eu uso este código:
key1 = get(gcf,'CurrentKey');
if(strcmp (key1 ,'k'))
%CODE HERE
end
Eu tenho tente algo como isso (para as teclas k e q):
key2 = get(gcf,'CurrentKey');
keystr = [key1 + key2];
if(strcmp(keystr, 'kq'))
%CODE HERE
end
O valor de key1 mudar, se você pressionar outro botão no teclado.Assim, a && operador nunca é cumprida.
Solução
Ele não é totalmente genérico, mas acho que isso deve fazer o truque:
Primeiro determinar se o controle é pressionado como mostrado por @Perseguição (provavelmente funciona para várias chaves)
modifiers = get(gcf,'currentModifier');
ctrlIsPressed = ismember('control',modifiers);
Em seguida, basta verificar a chave atual, como você já fez e combinar o resultado.No final, pode parecer algo como isto:
modifiers = get(gcf,'currentModifier');
key1 = get(gcf,'CurrentKey');
if(strcmp (key1 ,'k')) && ismember('control',modifiers)
%CODE HERE
end