Question

J'ai une interface graphique Matlab avec de nombreux boutons.Maintenant, je veux mettre des coups de feu sur le bouton. En fait, je peux vérifier un bouton et ça fonctionne bien. Ma questin est la façon dont je peux vérifier si deux boutons seront appuyez sur?

quelque chose comme Ctrl + Key. La clé CTRL ne doit pas être une combinaison de clé.

Merci d'aide. Désolé pour mon anglais.

Pour vérifier une touche, j'utilise ce code:

key1 = get(gcf,'CurrentKey');

if(strcmp (key1 ,'k'))
%CODE HERE
end

J'ai essayé quelque chose comme ça (pour les clés K et Q):

key2 = get(gcf,'CurrentKey');

keystr = [key1 + key2];

if(strcmp(keystr, 'kq'))
%CODE HERE
end

La valeur de Key1 Modifier, si vous appuyez sur un autre bouton du clavier. Donc l'opérateur && n'est jamais rempli.

Était-ce utile?

La solution

Ce n'est pas entièrement générique, mais je pense que cela devrait faire l'astuce:

Déterminez d'abord si le contrôle est pressé comme indiqué par @pursuit (fonctionne probablement pour plusieurs clés)

modifiers = get(gcf,'currentModifier');        
ctrlIsPressed = ismember('control',modifiers);

Vérifiez simplement la clé actuelle, comme vous l'avez déjà fait et combiner le résultat.En fin de compte, cela pourrait ressembler à ceci:

modifiers = get(gcf,'currentModifier');        
key1 = get(gcf,'CurrentKey');

if(strcmp (key1 ,'k')) && ismember('control',modifiers)
    %CODE HERE
end

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top