2013-01-23 13 views
6

Tôi đang sử dụng một waitbar như thế này:Abort kịch bản hiện hành về đóng waitbar

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

Tôi muốn dừng lại kịch bản này nếu người dùng đóng waitbar (nhấp chuột vào X của cửa sổ), mà không cần phải thêm nút Hủy.

Có cách nào để làm điều đó không?

Trả lời

5

Bạn có thể kiểm tra xem h có phải là tay cầm hợp lệ hay không và thoát khỏi vòng lặp khác. Chèn đoạn mã sau vào vòng lặp của bạn:

if ~ishandle(h) 
    break 
end 
1

Bạn có thể thử một cái gì đó như thế này:

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

Hy vọng nó giúp,

+0

gần (h) đóng waitbar không phải là kịch bản – dynamic

+0

Vâng, mã không hoàn chỉnh theo ý nghĩa, về cơ bản bạn kiểm tra xem thanh đợi có bị đóng hay không. Bạn làm theo đó với câu lệnh 'return' hoặc' break' hoặc 'throw' tùy thuộc vào nơi bạn sử dụng nó – Kiran

+0

@KiranChandrashekhar: Tôi không thấy nó sẽ phản ứng như thế nào khi cửa sổ bị đóng bởi người dùng - bạn phải kiểm tra xem việc xử lý không còn tồn tại thay thế. – Jonas

Các vấn đề liên quan