Automatically update a string in GUIDE textbox

3 次查看(过去 30 天)
I would like to be able to press a button and have the text field of a static textbox automatically update as a variable changes within a function.
I have some timer function:
function stopwatch
global t
for i = 1:10
clc;
t = tic
pause(1)
end
and the GUI callback function for the pushbutton:
function pushbutton1_Callback(hObject, eventdata, handles)
stopwatch
global t
set(handles.text2,'string',t)
but the textbox only updates once the loop is finished. How do I make it so that the textbox is updated automatically continuously?
Thanks!

回答(2 个)

Stephen23
Stephen23 2017-7-21
编辑:Stephen23 2017-7-21
You will need to set the text string inside the loop. For example (untested):
function stopwatch(h)
for k = 1:10
pause(1);
set(h,'string',tic)
end
end
function pushbutton1_Callback(hObject, eventdata, handles)
stopwatch(handles.text2)
or even all in one function:
function pushbutton1_Callback(~, ~, handles)
for k = 1:10
pause(1);
set(handles.text2,'string',tic)
end
end

Image Analyst
Image Analyst 2017-7-21
Have stopwatch take handles as an input and set it in there and call drawnow:
global t
for i = 1:10
clc;
t = tic
handles.text2.String = sprintf('Starting Time = ', t);
drawnow;
pause(1)
end
Not sure that makes sense to use tic though. You're starting 10 timers but saving only the starting time of the very last timer. Why????
  8 个评论
Jeffrey Alido
Jeffrey Alido 2017-7-28
I'm still a beginner so I am unsure what the code would all look like. Could you help from here?
So far I have my timer.m function:
function timer
for i = 1:15
clc;
i
pause(1)
end
And I'd like to press a pushbutton in the GUI so that a static textbox displays the timer live.
Thanks!
Image Analyst
Image Analyst 2017-7-28
I'd rather not give code for an approach that I don't recommend.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by