App Designer: Display text before executing

13 visualizaciones (últimos 30 días)
Matt Falcy
Matt Falcy el 6 de Mayo de 2019
Comentada: Matt Falcy el 7 de Mayo de 2019
This is relatively simple: When a user pushes a button in App Designer, I want them to see a message saying that the operation is execuing because it takes a few minutes to complete. In the example below, the "Working..." message is not displayed prior executing the loop, thus the user only sees "Done" when the operation is over. I suspect that I need the function to display the "Working" text and then call the other, time consuming function, but it is not clear how I do this inside App Designer. Thanks.
function buttonpush(app,event)
app.myEditField.Value= 'Working...'
for i =1:100
x[i]=stuff
end
app.myEditField.Value = 'Done'
end

Respuesta aceptada

Kojiro Saito
Kojiro Saito el 7 de Mayo de 2019
One way is to pause a bit (for exapmle, 0.01 second) in order to display the text before doing long-time operation.
function buttonpush(app,event)
app.myEditField.Value= 'Working...';
pause(0.01)
for i =1:100
x[i]=stuff
end
app.myEditField.Value = 'Done';
end
Or, you can use progress message dialog (uiprogressdlg).
function buttonpush(app,event)
d = uiprogressdlg(app.UIFigure,'Title','Progress', 'Indeterminate','on');
d.Message = 'Working...';
for i =1:100
x[i]=stuff
end
d.Message = 'Done';
close(d)
end

Más respuestas (1)

Jan
Jan el 7 de Mayo de 2019
This is a job for drawnow. Insert it after modifying the contents of the window to give Matlab the chance to update the display.
  1 comentario
Matt Falcy
Matt Falcy el 7 de Mayo de 2019
I tried all three solutions and they all worked great. Thank you Kojiro and Jan!

Iniciar sesión para comentar.

Categorías

Más información sobre Develop Apps Using App Designer en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by