Main Content

uiwait

プログラム実行を停止し、再開を待つ

説明

uiwait は、関数 uiresume が呼び出されるか、現在の Figure (gcf) が削除されるまで、実行をブロックします。

関数 uiwait は、MATLAB® と Simulink® プログラムの実行をブロックします。また、関数 uiwait は Simulink モデルの実行もブロックします。

uiwait(f) は、関数 uiresume が呼び出されるか、Figure f が削除されるまで、実行をブロックします。関数 figure または関数 uifigure のいずれかで作成された Figure を指定できます。

モーダル ダイアログ ボックスとともに関数 uiwait を使用して、プログラムの実行をブロックし、 "かつ"、ユーザーが応答するまでユーザーの操作をダイアログ ボックスのみに制限します。

uiwait(f,timeout) は、関数 uiresume が呼び出されるか、Figure が削除されるか、timeout 秒が経過するまで実行をブロックします。

すべて折りたたむ

警告ダイアログ ボックスを作成し、プログラムの実行を続行する前に、ユーザーの応答を待機します。

UI figure にラインプロットを作成し、警告ダイアログ ボックスを表示させます。ダイアログ ボックスに、ユーザーが応答すると関数 uiresume を呼び出す CloseFcn コールバックを指定します。ユーザーがダイアログ ボックスの [OK] をクリックするか、ダイアログ ボックスを閉じるのを待機します。プログラムの実行を再開するとき、コマンド ウィンドウにメッセージを表示します。

fig = uifigure;
fig.Position = [500 500 500 350]; 
ax = uiaxes(fig);
plot(ax,1:10)

uialert(fig,'A line plot was created in the axes.', ...
    'Program Information','Icon','info','CloseFcn','uiresume(fig)')

uiwait(fig)
disp('Program execution resumed')

Alert dialog box in a UI figure window with a plot. The dialog box text says: "A line plot was created in the axes."

ユーザーがモーダル メッセージ ダイアログ ボックスに応答するまで、プログラムの実行を続行するのをブロックします。

Figure にラインプロットを作成し、モーダル メッセージ ダイアログ ボックスを表示させます。ユーザーが [OK] をクリックするかダイアログ ボックスを閉じて、ダイアログが削除されるのを待機します。プログラムの実行を再開するとき、コマンド ウィンドウにメッセージを表示します。

f = figure;
plot(1:10)
msgfig = msgbox('Operation was completed successfully!','Success','modal');
uiwait(msgfig)
disp('Program execution resumed.');

A modal dialog box displays in front of a figure window that contains a line plot.

[続行] ボタンを作成し、ユーザーがそれを押すまで待機します。次に、メッセージを表示します。

クリックされると関数 uiresume を呼び出すコールバックをもつプッシュ ボタンを作成します。ユーザーが [続行] を押すか、Figure ウィンドウを閉じるまで待機します。次に、メッセージを表示します。

f = figure('Position',[500 500 400 300]);
c = uicontrol('String','Continue','Callback','uiresume(f)');
uiwait(f)
disp('Program execution has resumed');

A "Continue" button displays in the lower-left corner of a figure window.

指定された時間が経つと閉じる Figure を作成します。

UI figure にライン プロットを作成します。

fig = uifigure;
fig.Position = [500 500 500 350];
ax = uiaxes(fig);
plot(ax,1:10);

5 秒のタイムアウトを作成します。次に、try ブロック内で関数 close を呼び出して Figure を閉じます。既に閉じられている場合、catch ブロックにより「無効な Figure のハンドル」エラーの表示は回避され、コードは正常に実行し続けられます。

uiwait(fig,5)

try
close(fig)
catch
end

入力引数

すべて折りたたむ

figure オブジェクト。関数 figure または関数 uifigure で作成された Figure オブジェクトとして指定します。

タイムアウト期間。秒単位の数値で指定します。1 以上の数値を指定します。

詳細

すべて折りたたむ

モーダル ダイアログ ボックス

モーダル ダイアログ ボックスでは、モーダル ダイアログ ボックスに応答する前に他の MATLAB ウィンドウを操作することができません。

バージョン履歴

R2006a より前に導入