2010-08-25 12 views
10

Estoy trabajando en una interfaz gráfica de usuario utilizando GUIDE en MATLAB, y por lo que he leído parece que MATLAB actualiza los controles de la interfaz de usuario en función de un temporizador cada cierto tiempo. ¿Hay alguna manera de obligarlo a actualizar los controles de la interfaz de usuario, para que pueda actualizarlo en el medio de la función? Ahora mismo tengo una función que hace, simplifed, algo así comoForce matlab gui para actualizar la función media de control ui

set(handles.lblStatus,'String','Processing...') 
%function that takes a long time 
set(handles.lblStatus,'String','Done') 

Desde MATLAB no actualiza la interfaz gráfica de usuario durante una función de devolución de llamada, el usuario sólo ve nunca 'Hecho' después de un largo período de espera y nunca se vea 'Tratamiento'. Traté de agregar guidata(hObject, handles) después del primer conjunto, con la esperanza de que forzaría la pantalla para actualizar, pero no es así.

+1

No es un contador de tiempo, pero otro hilo (EDT) que actualiza la interfaz de usuario http://undocumentedmatlab.com/blog/matlab-and-the-event-dispatch- thread-edt/ – Mikhail

Respuesta

16

Intente llamar al DRAWNOW.

set(handles.lblStatus,'String','Processing...') 
drawnow 
%function that takes a long time 
set(handles.lblStatus,'String','Done') 
+0

¡Gracias! Eso solucionado 'er hasta. :) –

0

Creo que hay una función drawnow en matlab.

drawnow completa en espera de acontecimientos dibujo

+6

Nunca he entendido realmente por qué las personas duplican la información en respuestas anteriores como nuevas respuestas. –

+1

Creo que está bien si le da una mejor descripción, o más ejemplos, o más enlaces, o están dentro de un par de minutos, así que tal vez no estaba allí cuando está cargando la página, pero no está bien cuando es 10 minutos después y peor. –

+4

Sí, algo más necesitaba mi atención mientras respondía. Perdón por llegar tarde – neXus

Cuestiones relacionadas