2013-01-23 80 views
4

拿這個小例子:Matlab的關閉所有不關閉所有

h=waitbar(0,'a window') 
close all 

命令close all這裏不會關閉waitbar。
要關閉它,我必須使用close all hidden

但爲什麼Matlab認爲h = waitbar作爲隱藏的處理程序?

+4

因爲否則你可以找到它... – thang

+0

+1 to @thang爲存在主義的解釋。值得回答。 –

回答

5

get(h, 'HandleVisibility')告訴你它的句柄可見性爲callback,所以當它從內部回調(通過你的GUI代碼的MATLAB)訪問時,它是隱藏的。 close all只能在可見的手柄上操作,因此您的waitbar將不會關閉。

編輯:看起來你可以混淆這個系統和set(h, 'HandleVisibility', 'on')。現在,當您嘗試close all時,waitbar將消失。