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

15 visualizaciones (últimos 30 días)
MathWorks Support Team
MathWorks Support Team el 25 de Oct. de 2013
Respondida: MathWorks Support Team el 25 de Oct. de 2013
waitbar関数において、キャンセル時の処理の記述方法を教えてください。

Respuesta aceptada

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

Más respuestas (0)

Categorías

Más información sobre アプリの作成 en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2008a

Community Treasure Hunt

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

Start Hunting!