避免在Matlab GUI中中断回调函数

时间:2013-02-20 09:55:59

标签: matlab user-interface callback

我有一个Matlab GUI,需要很长时间才能执行一些回调函数。此外,这些功能包括以下代码:

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

我想避免那些回调执行被中断,以避免在用户按下其他按钮时数据不一致。因此,我将图形设置修改为:

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

但是,回调仍然中断。我怎么能避免它?

注意:我认为问题是我需要将'BusyAction'和'Interruptible'值传播到我GUI中的所有控件,有没有办法自动执行?例如,在生成GUI之前修改默认值。

1 个答案:

答案 0 :(得分:3)

将所有属性传播到所有UI对象的最快最干净的方法是使用findobj

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