Avoid interruptions in the callbacks for several controls

2 次查看(过去 30 天)
I am building a GUI programmatically. In order to have data consistency, I want that all the uicontrol's don't interrupt a previously running callback function. In order to achieve so, I modify each uicontrol as:
set(hdl, 'BusyAction','cancel', 'Interruptible','off');
I want to configure all the uicontrol's at once. But there are not default value, like with the Units (DefaultUIControlUnits). Besides, they don't inherit this property from the parent control. Thus, is there any elegant way to do it?

采纳的回答

Walter Roberson
Walter Roberson 2013-3-6
set( findobj( 'Type', 'uicontrol' ), 'Interruptible', 'off' )
  1 个评论
Diego Alonso
Diego Alonso 2013-3-7
It works!! I thought about this solution, but I assumed that it was going to be more time consuming, but it is actually quite fast. Thank you

请先登录,再进行评论。

更多回答(1 个)

Daniel Shub
Daniel Shub 2013-3-6
Callbacks are only processed when the event queue is flushed. There are only a small number of things that can cause this (pause and drawnow). As long as you are careful to never flush the event queue, you won't get any interrupts.
  3 个评论
Daniel Shub
Daniel Shub 2013-3-7
You can use drawnow('expose') to avoid flushing the event queue while still updating the screen.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Migrate GUIDE Apps 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by