Matlab - Refrescar etiquetas GUIDE

   
Vista:

Refrescar etiquetas GUIDE

Publicado por ingenioso (1 intervención) el 17/10/2008 13:21:14
Hola.
Estoy implementando una aplicación gráfica en MATLAB y cuando cambio algo en el interfaz (una etiqueta por ejemplo) el cambio no se hace en pantalla hasta que no termina de ejectarse la función.
Me explico, tengo un boton que realiza un proceso largo y mi intención es ir informando al usuario de como va el proceso mediante la interfaz gráfica del programa. Para ello he puesto un text a modo de barra de estado en el que escribo con la orden set(handles.estado,'string','...') pero no consigo que el texto se muestre hasta que no termina la ejecución de todo el proceso.
¿Es posible forzar el refresco de la pantalla?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Refrescar etiquetas GUIDE

Publicado por Kike (304 intervenciones) el 18/10/2008 08:25:53
Podrías usar el comando waitbar. También es posible usar un texto estático. En ambos casos para que se refresquen deben estar inlcuidos dentro de un proceso iterativo con while o for.

Si los cálculos a realizar no son iterativos entonces podrías incluir dentro del código fuente el progreso estimado. Ejemplo:

proceso1;
set(handles.estado,'string','10%');
proceso2;
set(handles.estado,'string','50%');
proceso3;
set(handles.estado,'string','90%');
proceso4;
set(handles.estado,'string','100%');
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Refrescar etiquetas GUIDE

Publicado por ingenioso (1 intervención) el 20/10/2008 10:32:49
Gracias por tu respuesta Kike.
Mi proceso si es iterativo, uso un bucle for y un texto estatico para mostrar los mensajes:

for p=1:P
set(handles.txtEstado,'String',['Leyendo imagen ' num2str(p) '/' num2str(P)]);
...
end

Pero en la etiqueta solo aparece el texto que se pone en la ultima iteración, mientras tanto permanece en blanco (que es su valor inicial).

Probaré lo del waitbar
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar