Вопрос

У меня есть 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
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top