Effacer les filtres
Effacer les filtres

Avoid interruptions in the callbacks for several controls

2 vues (au cours des 30 derniers jours)
Diego Alonso
Diego Alonso le 6 Mar 2013
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?

Réponse acceptée

Walter Roberson
Walter Roberson le 6 Mar 2013
set( findobj( 'Type', 'uicontrol' ), 'Interruptible', 'off' )
  1 commentaire
Diego Alonso
Diego Alonso le 7 Mar 2013
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

Connectez-vous pour commenter.

Plus de réponses (1)

Daniel Shub
Daniel Shub le 6 Mar 2013
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 commentaires
Diego Alonso
Diego Alonso le 7 Mar 2013
Thank you. I indeed have drawnow() instructions.
Daniel Shub
Daniel Shub le 7 Mar 2013
You can use drawnow('expose') to avoid flushing the event queue while still updating the screen.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by