uiprogressdlg terminates to early

10 views (last 30 days)
C.S.
C.S. on 16 May 2021
Answered: Srinik Ramayapally on 12 Jul 2021
I have created a application in app designer. I have many elements (+500) like buttons and textareas, all organized in a gridlayout.
I am using the uiprogressdlg to create a progress dialog box to inform the user about the progress. The problem I have is that the uiprogressdlg close to early.
When I click a button in my app after startup and the uiprogressdlg is close it takes up to 20 sec before the button callback is executed.
Is it because the gridlayout is not finish?
My startupFcn code looks like this:
function startupFcn(app)
%%Open dialog box
d = uiprogressdlg(app.UIFigure,'Title','Initiating code','Indeterminate','on');
pause(.5)
% SOME CODE HERE
%%Change message in dialog box
d.Message = 'Date is prepared for visualization';
%Create gridlayout
app.NewGridLayout = uigridlayout(app.Panel_2,[40 16],'Scrollable','on','Visible',"off");
%Set app.grid properties
app.NewGridLayout.ColumnSpacing = 0;
app.NewGridLayout.RowSpacing = 0;
RowHeight = cell(1,41);
RowHeight(:) = {90};
RowHeight(1) = {45}; %The first row is for header
app.NewGridLayout.RowHeight = RowHeight;
app.NewGridLayout.ColumnWidth = {100,25,100,35,35,35,35,'1x','1x','1x','1x','1x',230,110,65,70};
app.NewGridLayout.BackgroundColor = [0.93,0.84,0.82];
%THEN SOME CODE TO INSERT UIelements and DATA IN THE APP.NewGridLayout
%%Maximize app window
app.UIFigure.WindowState = 'maximized';
%%Close dialog box
pause(0.1)
close(d);
end

Answers (1)

Srinik Ramayapally
Srinik Ramayapally on 12 Jul 2021
Hey,
If you want your ui process dialogue to be displayed for a longer duration, you should try increasing the value in the pause function
In this case after displaying this uiprocess dialog,
d.Message = 'Date is prepared for visualization';
I recomment adding this line
pause(5);
and calibrating the value inside the pause function until you are satisfied with the display time of the ui process dialogue before it collapses and your grid layout gets displayed.
The grid layout indeed does take some time to load up and get displayed while the process dialogue closes within 2 seconds.
For further reference, please refer to the UI process dialogue documentation.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by