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

3

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

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

我希望避免在用户按下其他按钮时中断回调执行,以避免数据不一致。因此,我修改了图形设置:

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

然而,回调仍然被中断了。我该怎么避免这种情况?
注意:我认为问题在于我需要将“BusyAction”和“Interruptible”值传播到GUI中的所有控件中,有没有自动完成的方法?例如,在生成GUI之前修改默认值。

更多信息可以在这里找到:http://www.mathworks.se/help/matlab/creating_guis/callback-sequencing-and-interruption.html - tashuhka
1个回答

3

在所有UI对象中传播任何属性的最快和最干净的方法是使用findobj

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接