How to refresh a GUI data in a given time step, automatically?
8 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Walter Roberson
2015-9-8
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.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!