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

15 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 25 Oct 2013
waitbar関数において、キャンセル時の処理の記述方法を教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 25 Oct 2013
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のウィンドウを閉じる
■キャンセルボタンをクリック

More Answers (0)

Categories

Find more on アプリの作成 in Help Center and File Exchange

Products


Release

R2008a

Community Treasure Hunt

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

Start Hunting!