我有一个简单的GUI,我想使用文本字段来显示循环中生成的不断变化的值。我现在不知道如何让它发挥作用。从帮助文件和一些论坛帖子我有以下内容:
首先我创建我的文本对象:
hTimer = uicontrol('Style','text','String','Time',...
'Position',[450,300,60,15],...
'Callback',@Timer_CreateFcn);
我创建了一些功能:
function Timer_CreateFcn(hObject, eventdata, handles)
global statText
statText = hObject;
end
然后我有我的循环生成值:
while ...
textString=['TestCycleTime = ',num2str(datestr(tsNum(idx-5)-tsNumDoor(1),'MM:SS.FFF')),' [Min:Sec]'];
global statText;
set(statText, 'String', textString);
end
脚本正在运行且没有错误,但计时器仍未更新。 有人可以给我一个提示吗?
答案 0 :(得分:0)
问题是您正在'String'
循环中更新文本对象的while
属性,这会阻止MATLAB自动花时间实际呈现更改。要更改此行为,您可以在设置'String'
属性后显式调用drawnow
以显式呈现当前数字。
set(hTimer, 'String', textString);
drawnow
作为旁注,我建议您研究在应用中传递数据的方法,而不是使用global
变量。