Как проверить два клавиши нажаты в MatLab?
-
21-12-2019 - |
Вопрос
У меня есть GUI Matlab со многими кнопками.Теперь я хочу установить некоторые стенки на кнопку. На самом деле я могу проверить на одну кнопку, и она работает нормально. Мой целют - это то, как я могу проверить, будут ли две кнопки нажать?
что-то вроде клавиши Ctrl +. Он не должен ключ CTRL=) Это может быть любая ключевая комбинация.
Спасибо за помощь. Извините за мой английский.
Чтобы проверить на одну клавишу, я использую этот код:
key1 = get(gcf,'CurrentKey');
if(strcmp (key1 ,'k'))
%CODE HERE
end
.
Я попробую что-то вроде этого (для клавиш K и Q):
key2 = get(gcf,'CurrentKey');
keystr = [key1 + key2];
if(strcmp(keystr, 'kq'))
%CODE HERE
end
.
Значение ключа1 изменится, если вы нажмете другую кнопку на клавиатуре. Итак, оператор && никогда не заполнен.
Решение
Это не полностью универсально, но я думаю, что это должно сделать трюк:
Сначала определите, нажата ли контроль Как показано на @Pursuit (возможно, работает для нескольких ключей)
modifiers = get(gcf,'currentModifier');
ctrlIsPressed = ismember('control',modifiers);
.
Тогда просто проверьте текущий ключ, как вы уже делали и объединили результат.В конце это может выглядеть что-то подобное:
modifiers = get(gcf,'currentModifier');
key1 = get(gcf,'CurrentKey');
if(strcmp (key1 ,'k')) && ismember('control',modifiers)
%CODE HERE
end
.