How to Update Label Text from Custom Function in AppDesigner?

47 visualizzazioni (ultimi 30 giorni)
Hello everyone! I have custom analysing function that analyses the directory. I am calling this function from the main GUI app in AppDesigner. The function that I am calling from the main app has the following structure,
function analyse_result = analyse(path_dir)
objects = objects_in_dir(path_dir)
for ii = 1:length(objects)
do_something
end
end
Now I've added a label text on the gui and called ProgressLabel. What I want to do is to update this label inside the function body, so I've updated the function like so,
function analyse_result = analyse(path_dir,app.ProgressLabel.Text)
objects = objects_in_dir(path_dir)
for ii = 1:length(objects)
do_something
app.ProgressLabel.Text = sprintf("Iteration: %%u",(ii/length(objects))*100)
end
end
But when I'm calling this updated function from the main gui with added new variable, nothing changes on the text label. How can I solve this issuse?

Risposta accettata

Ergin Sezgin
Ergin Sezgin il 3 Ott 2022
Hello Arda,
Try using drawnow to update figures and callbacks as the following:
function analyse_result = analyse(path_dir,app.ProgressLabel.Text)
objects = objects_in_dir(path_dir)
for ii = 1:length(objects)
do_something
app.ProgressLabel.Text = sprintf("Iteration: %%u",(ii/length(objects))*100)
drawnow
end
end
Same is necessary for other operations such as while loop terminations via a button.
  6 Commenti
Arda Kayaalp
Arda Kayaalp il 3 Ott 2022
Silly of me, I couldn't see the app structure. Thanks a lot, it worked!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by