2013-02-20 99 views
3

我有一個Matlab GUI,需要很長的時間來執行一些回調函數。此外,這些功能包括下面的代碼:避免Matlab GUI中的回調函數中斷

drawnow('expose'); 
pause(handles.data.delay); 

我想避免這些回調得到執行,以避免數據不一致,如果用戶按下其他按鈕中斷。因此,我修改數字設置爲:

set(handles.figure, 'BusyAction','cancel', 'Interruptible','off'); 

但是,回調仍然中斷。我怎樣才能避免它?

注:我認爲問題是我需要將'BusyAction'和'Interruptible'值傳播到我的GUI中的所有控件,有沒有辦法自動執行它?例如,像生成GUI之前修改默認值一樣。

+0

更多信息可以[點擊這裏](發現http://www.mathworks.se/help/matlab/ creating_guis /回調測序和 - interruption.html) – tashuhka 2013-02-20 11:06:50

回答

3

任何財產傳播到所有UI對象的最快,最徹底的方法是findobj

set(findobj('Type','uicontrol'), 'BusyAction','cancel', 'Interruptible','off');