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.

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top