¿Cómo revisar dos teclas presionadas en Matlab?
-
21-12-2019 - |
Pregunta
Tengo un GUI de Matlab con muchos botones.Ahora quiero establecer algunos disparos al botón. En realidad puedo verificar un botón y funciona bien. Mi Questin es ¿cómo puedo verificar si se presionarán dos botones?
Algo como Ctrl + Key. No debe ser la tecla CTRL=) podría ser cualquier combinación clave.
Gracias por la ayuda. Lo siento por mi ingles.
Para verificar si hay una clave, utilizo este código:
key1 = get(gcf,'CurrentKey');
if(strcmp (key1 ,'k'))
%CODE HERE
end
He intentado algo como esto (para las llaves K y Q):
key2 = get(gcf,'CurrentKey');
keystr = [key1 + key2];
if(strcmp(keystr, 'kq'))
%CODE HERE
end
El valor de Key1 Cambiar, si presiona otro botón en el teclado. Así que el operador && nunca se llena.
Solución
No es completamente genérico, pero creo que esto debería hacer el truco:
Primero determinar si se presiona el control como se muestra en @pursuit (probablemente funciona para varias teclas)
modifiers = get(gcf,'currentModifier');
ctrlIsPressed = ismember('control',modifiers);
Luego, simplemente revise la tecla actual, como ya hizo y combine el resultado.Al final, podría parecer algo así:
modifiers = get(gcf,'currentModifier');
key1 = get(gcf,'CurrentKey');
if(strcmp (key1 ,'k')) && ismember('control',modifiers)
%CODE HERE
end