Give Focus to GUI Window
古いコメントを表示
Hi everybody,
I have programmed a function that starts off with a set of instructions on a GUI, and the user clicks a button to indicate they've read the instructions. After they click the button, the Matlab command line interface comes up asking them to type in their name. After they type in their name and hit enter, I want the GUI to pop back into view instead of having to manually bring up the window. Is there some sort of focus property that I can set to bring the focus back to the GUI window?
Jeff
採用された回答
その他の回答 (4 件)
Jan
2011 年 9 月 8 日
Unfortunately "figure(FigHandle)" does not work reliably in opposite to the documentation. E.g. a pressed button can keep the keyboard focus. Therefore I've added this code to all callback of my buttons:
set(ButtonH, 'Enable', 'off');
drawnow;
set(ButtonH, 'Enable', 'on');
Then the figure gets the focus. Another solution is the FEX: WindowAPI, which allows to move the focus also.
5 件のコメント
Sean de Wolski
2011 年 9 月 8 日
++ THAT IS GENIUS!!
(sorry for the scream, I've been looking for a solution to that for quite some time)
Jan
2011 年 9 月 8 日
See also: http://www.mathworks.com/matlabcentral/newsreader/view_thread/235825 and http://www.mathworks.com/matlabcentral/answers/555-controlling-background-color-of-selected-uicontrol-popup .
Charles
2016 年 5 月 12 日
Jan:
5 years later, and this helped me. Thanks!
Jenny Lu
2018 年 8 月 3 日
Thank you! A solution to my problems for quite some time.
Kris Hoffman
2020 年 12 月 29 日
編集済み: Kris Hoffman
2020 年 12 月 29 日
I'm using the arrow keys to visually tally events in a video (in lieu of some computer vision algorithm later).
I got it to switch focus away from the button, but to where? Right now I STILL have to click some blank space in a panel or elswhere to begin using the keyboard.
claudio
2018 年 4 月 26 日
You can access directly to java handle and set focus request
% warning off MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame
jFig = get(hFig,'JavaFrame');
jFig.requestFocus
In this way you have not to force enable property of your uicontrols
2 件のコメント
Mohammad Askari
2018 年 6 月 6 日
Superb! This is much faster than using drawnow. Thanks.
Christoph
2019 年 5 月 31 日
With 2017b this does not work for me, furthermore I get this warning:
Warning: figure JavaFrame property will be obsoleted in a future release. For more information see the JavaFrame resource on the MathWorks web site.
In my case
figure(FigHandle)
did the job.
Bernard
2022 年 7 月 19 日
1 投票
figure(app.UIFigure) works from within an app function for me.
I have to use this often when calling uigetfile because after selecting a file, the focus does not return to the app even though that was the previously active window.
1 件のコメント
Petr Kryze
2023 年 7 月 12 日
I can confirm this works perfectly in MATLAB apps as of July 2023. Just put the
figure(app.UIFigure)
line directly after the command that defocuses the app window (uigetfile and such).
カテゴリ
ヘルプ センター および File Exchange で Environment and Settings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!