
waitbarに、キャンセルボタンを設定するにはどうすればよいですか?
15 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2013 年 10 月 25 日
回答済み: MathWorks Support Team
2013 年 10 月 25 日
waitbar関数において、キャンセル時の処理の記述方法を教えてください。
採用された回答
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 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!