Come controllare due tasti premuti in Matlab?
-
21-12-2019 - |
Domanda
Ho una GUI Matlab con molti pulsanti.Ora voglio impostare alcune riprese al pulsante. In realtà posso controllare un pulsante e funziona bene. La mia questin è come posso controllare se due pulsanti saranno premere?
Qualcosa come Ctrl + Key. Non deve il tasto Ctrl=) Potrebbe essere qualsiasi combinazione di tasti.
Grazie per l'aiuto. Scusa per il mio inglese.
Per verificare una chiave I utilizzo questo codice:
key1 = get(gcf,'CurrentKey');
if(strcmp (key1 ,'k'))
%CODE HERE
end
.
Ho provato qualcosa del genere (per le chiavi k e q):
key2 = get(gcf,'CurrentKey');
keystr = [key1 + key2];
if(strcmp(keystr, 'kq'))
%CODE HERE
end
.
Il valore del tasto1 Modifica, se si preme un altro pulsante sulla tastiera. Quindi l'operatore && non è mai pieno pieno.
Soluzione
Non è completamente generico, ma penso che questo dovrebbe fare il trucco:
Prima di determinare se il controllo viene premuto come mostrato da @pursuit (probabilmente funziona per diverse chiavi)
modifiers = get(gcf,'currentModifier');
ctrlIsPressed = ismember('control',modifiers);
.
Allora basta controllare il tasto corrente, come hai già fatto e combinare il risultato.Alla fine potrebbe sembrare qualcosa del genere:
modifiers = get(gcf,'currentModifier');
key1 = get(gcf,'CurrentKey');
if(strcmp (key1 ,'k')) && ismember('control',modifiers)
%CODE HERE
end
.