Hi everyone,
I have a problem regarding the KeyPressFcn of a figure. I try to make a GUI in which I want to control something with the keys. If the focus is on the main figure then this is possible but after I press a button and the focus moves to the button, the KeyPressFcn doesn't activate. How can I move the focus back to the main window (to the background) after I press a button, in order to be able to record again the pressed keys?
Here is a small example in which after the button is pressed the keys are not recorded until I click with the mouse somewhere on the background and the focus moves again to the main window.
function crazy_gui
f = figure('KeyPressFcn', @(handle,event) disp(event.Key), 'Position',[500,500,500,500]);
hButton = uicontrol('Style','pushbutton','String','Crazy Button',...
'Position',[200,200,100,100],...
'Callback',@button_Callback);
function button_Callback(handle,event)
disp('Focus changed to the button! Now you cannot record the pressed keys');
end
end
Thanks,
Razvan

 採用された回答

Matt Fig
Matt Fig 2011 年 5 月 21 日

1 投票

Try the WindowKeyPressFcn instead.

2 件のコメント

Razvan
Razvan 2011 年 5 月 21 日
Thanks a lot!
Razvan
Razvan 2011 年 5 月 21 日
And how can I disable the WindowKeyPressFcn property while a slider is active, such that in that case the keys control only the slider and don't do anything else outside the slider?

サインインしてコメントする。

その他の回答 (1 件)

Norbert
Norbert 2020 年 10 月 15 日

4 投票

Thanks a lot for your hint Matt, did not work out in my case.
in order to get the function active i always have to click on the figure.
Best
Norbert

カテゴリ

ヘルプ センター および File ExchangeInteractive Control and Callbacks についてさらに検索

タグ

質問済み:

2011 年 5 月 21 日

回答済み:

2020 年 10 月 15 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by