MATLAB Answers

App Designer: Display text before executing

43 views (last 30 days)
Matt Falcy
Matt Falcy on 6 May 2019
Commented: Matt Falcy on 7 May 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

  0 Comments

Sign in to comment.

Accepted Answer

Kojiro Saito
Kojiro Saito on 7 May 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

  0 Comments

Sign in to comment.

More Answers (1)

Jan
Jan on 7 May 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 Comment

Matt Falcy
Matt Falcy on 7 May 2019
I tried all three solutions and they all worked great. Thank you Kojiro and Jan!

Sign in to comment.

Sign in to answer this question.


Translated by