How to make uigetfile window pops-up in front of my app (designed in appdesigner)?

32 ビュー (過去 30 日間)
Toey
Toey 2020 年 4 月 18 日
回答済み: Jorg Woehl 2024 年 5 月 14 日
Hi Guys,
I use uigetfile to load a file in my app. But its window always ends up behind my app figure. I have tried a couple of solutions suggested in previous threads e.g. using drawnow, but it didn't work. I'm using matlab 2020a.
Is there a way to make uigetfile window show up on top of my app figure without turning my figure off/on?
I would be very grateful if you could share some works around this issue.
Best,
Toey
  5 件のコメント
Earl Vickers
Earl Vickers 2020 年 12 月 14 日
I have the same problem with 2020b on Mac.
Mario Malic
Mario Malic 2020 年 12 月 14 日
I can't find the original question where the workaround for this was posted, but write this after uigetfile or uigetdir
drawnow;
figure(app.ApplicationUIFigure); % replace this with your app handle

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

回答 (2 件)

Geoff Martin
Geoff Martin 2023 年 8 月 10 日
I'm having exactly the same problem (with uiopen instead of uigetfile) - and the suggested solution seems to do the opposite of a fix.
The uigetfile pop-up pops up BEHIND the app window. So, if you don't know it's there, you won't go looking for it.
the only work-around I've found so far is to make the entire app window invisible (in my case, it's just app.UIFigure)
app.UIFigure.Visible = 'off';
uiopen('load');
app.UIFigure.Visible = 'on';
But this is obviously not very elegant.
Is there a way to move the uigetfile/uiopen window in front of the app window?

Jorg Woehl
Jorg Woehl 2024 年 5 月 14 日
I have just published a simple workaround for these focus issues, which -- as The MathWorks acknowledges -- still have "currently no official workaround". Check out my File Exchange contribution https://www.mathworks.com/matlabcentral/fileexchange/165961-fixfocus.

カテゴリ

Help Center および File ExchangeApp Building についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by