How to refresh a GUI data in a given time step, automatically?

7 vues (au cours des 30 derniers jours)
Ali Y.
Ali Y. le 8 Sep 2015
Commenté : Ali Y. le 9 Sep 2015
I have written a code that composes of several steps, i.e. several processing steps and then some GUI for visualization and plotting; steps are like: criterion 1, criterion 2, GUI control, and plot.
For repeating of the steps and showing results for different criteria, I need to make the GUI data (variables) get refreshed in a given time step, automatically. I want to embed the functionality within the GUI opening file. I used the following code, but it does not working. Maybe it's because of the 'Running' mode that is 'off'; but I don't know how to turn it on. Could somebody help me, please?
function my_gui_OpeningFcn
t = timer;
t.StartDelay = 0.1;
t.ExecutionMode = 'fixedRate'
t.Period = 1
t.TimerFcn = @(myTimerObj, thisEvent)refreshdata(hObject,handles);
start(t)
handles.timer = t
handles.output = hObject;
guidata(hObject, handles);
end

Réponse acceptée

Walter Roberson
Walter Roberson le 8 Sep 2015
Unless you are using a nested function that you have not displayed here, in your
t.TimerFcn = @(myTimerObj, thisEvent)refreshdata(hObject,handles);
neither hObject nor handles will be defined. Also, refreshdata() takes only a single parameter unless you supply the option 'caller'.
You have
function my_gui_OpeningFcn
if instead you had
function my_gui_OpeningFcn(hObject, event)
then you could use
t.TimerFcn = @(myTimerObj, thisEvent)refreshdata(hObject);
provided that the objects to be refreshed are all children of the GUI figure itself.
  1 commentaire
Ali Y.
Ali Y. le 9 Sep 2015
Thank you for your help Walter; applying the modification makes the code functioning; though, I found It will not be helpful, since my code only refresh the gui's data (objects and handles) without catching the updated work-space data. When I change the refreshdata (hObject,handles) to refreshdata (my_gui), It refresh the gui window that makes the window blink and untouchable.
Therefore, I think it is better, for me, to do the refresh outside of the gui and assign it to another callback function.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by