App Designer: Display text before executing

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

 채택된 답변

Kojiro Saito
Kojiro Saito 2019년 5월 7일

0 개 추천

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

추가 답변 (1개)

Jan
Jan 2019년 5월 7일

1 개 추천

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

Matt Falcy
Matt Falcy 2019년 5월 7일
I tried all three solutions and they all worked great. Thank you Kojiro and Jan!

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Develop Apps Using App Designer에 대해 자세히 알아보기

질문:

2019년 5월 6일

댓글:

2019년 5월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by