waitbarに、キ​ャンセルボタンを設定​するにはどうすればよ​いですか?

15 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
回答済み: MathWorks Support Team 2013 年 10 月 25 日
waitbar関数において、キャンセル時の処理の記述方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
waitbar関数では、キャンセルボタンをクリックした時のコールバック処理を、'CreateCancelBtn'プロパティの後に直接記述することができます。
以下に2通りの方法を示します。
 1. MATLABスクリプトとして使用する場合
 2. 関数MATLABファイルとして使用する場合
1.MATLABスクリプトとして使用する場合
下記例では、キャンセル時のコールバック処理として、変数flagを1に設定しています。この変数flagの値により、中断されたかどうかを判断しています。
% 初期設定
flag=0;
% キャンセルコールバックで、変数flagを1に設定。
h = waitbar(0,'実行中・・・','CreateCancelBtn','flag = 1;');
for k=1:100
waitbar(k/100,h)
pause(0.1)
if flag==1
break % Cancelがクリックされると中断 (for文を抜ける)
end
end
if flag == 0
waitbar(100,h,'終了しました。')
elseif flag == 1
waitbar(k/100,h,'中断しました。')
end
pause(1)
delete(h) % waitbarのウィンドウを閉じる
2. 関数MATLABファイルとして使用する場合
SETAPPDATA関数とGETAPPDATA関数を利用し、内部でデータを
定義/取得します。
function sample
h = waitbar(0,'実行中・・・','CreateCancelBtn','setappdata(gcbf,''canceling'',1)');
setappdata(h,'canceling',0)
for k=1:100
waitbar(k/100,h)
pause(0.1)
if getappdata(h,'canceling')
waitbar(k/100,h,'中断しました。')
break % Cancelがクリックされると中断 (for文を抜ける)
end
end
pause(1)
delete(h) % waitbarのウィンドウを閉じる
■キャンセルボタンをクリック

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeアプリの作成 についてさらに検索

タグ

製品


リリース

R2008a

Community Treasure Hunt

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

Start Hunting!