2013-01-23 28 views
6

我使用这样的waitbar:中止当前的脚本在关闭waitbar

h = waitbar(0,'Please wait...'); 
for i=1:100, % computation here % 
    waitbar(i/100) 
    % other operation here 
end 
close(h) 

我想如果用户关闭waitbar停止此脚本(点击窗口X),而无需添加一个取消按钮。

有没有办法做到这一点?

回答

5

您可以测试h是否为有效句柄,否则退出循环。将以下到您的循环:

if ~ishandle(h) 
    break 
end 
1

你可以尝试这样的事情:

if ishandle(h), 
    close(h); 
    % Your code here 
else 
    %waitbar has been closed by the user 
    % call throw, return, or break 
end 

希望它能帮助,

+0

接近(H)关闭waitbar不是脚本 – dynamic

+0

是,代码在这个意义上不完整,你基本上检查waitbar是否关闭。你用一个'return'或者一个'break'或者'throw'声明,根据你使用它的位置进行跟踪。 – Kiran

+0

@KiranChandrashekhar:我没有看到这将如何对用户关闭的窗口做出反应 - 你必须检查句柄是否不存在。 – Jonas