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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top