How to use uiwait in GUI

11 ビュー (過去 30 日間)
Myrthe B.
Myrthe B. 2019 年 2 月 5 日
回答済み: Luna 2019 年 2 月 5 日
I want to use uiwait in my gui to prevent the rest of my script from advancing until the button 'end' is used. However, when I put uiwait in the opening function, it advances anyways. However, it only advances after using two buttons (initializing imfreehand) twice. If I put one more uiwait, the same happens after three times. Two other buttons don't have this effect on advancing the script. Therefore, it seem that these two buttons somehow delete the figure so uiwait advances. However, I can't figure out where, how and why.
Where should I put uiwait to have the desired effect (advancing only after the button 'end' is used)?
  2 件のコメント
Gani
Gani 2019 年 2 月 5 日
You can disable the 'end' button till your script completes using callback.
Myrthe B.
Myrthe B. 2019 年 2 月 5 日
Yes, I'm aware of that. Maybe it was not entirely clear. I have a base script where this GUI is a part of. I only want to advance with the rest of the script until the user is ready with manual adjusting and pushes 'end'. At the moment, the rest of my script advances before this manual adjusting is complete.

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

採用された回答

Luna
Luna 2019 年 2 月 5 日
Use waitfor instead. Waitfor pauses calculation until the object destroyed or deleted.
figHandle = uifigure(..) % or you can create another object, etc.
waitfor(figHandle); % when end button pressed, put delete to this button's callback and delete figHandle (or close figure inside this callback), so your code will continue after deletion.
% you can apply it any other objects not only figures

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMaintain or Transition figure-Based Apps についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by