Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MatlabGUI中的文本字段作为计时器_Matlab_User Interface_Text_Matlab Figure - Fatal编程技术网

使用MatlabGUI中的文本字段作为计时器

使用MatlabGUI中的文本字段作为计时器,matlab,user-interface,text,matlab-figure,Matlab,User Interface,Text,Matlab Figure,我有一个简单的GUI,我想使用一个文本字段来显示循环中生成的不断变化的值。我只是不知道如何让它工作。从帮助文件和一些论坛帖子中,我有以下内容: 首先,我创建文本对象: hTimer = uicontrol('Style','text','String','Time',... 'Position',[450,300,60,15],... 'Callback',@Timer_CreateFcn); 我创建了一些函数: function Timer_Cr

我有一个简单的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
脚本正在运行,没有错误,但计时器仍没有更新。
有人能给我一个提示吗?

问题是,您正在
循环中更新文本对象的
'String'
属性,而
循环阻止MATLAB自动花时间实际渲染更改。要改变此行为,可以在设置后显式调用
'String'
属性以显式呈现当前地物

set(hTimer, 'String', textString);
drawnow

作为旁注,我建议您研究在应用程序中传递数据的方法,而不是使用
全局变量。

为什么不更新到有指南的较新版本的MATLAB?这是您必须问我的老板的一件事……绝对不需要指南。您的问题是计时器管理(该指南没有帮助)。计时器应在GUI定义中自行初始化,而不是在
文本
uicontrol回调中初始化。计时器回调(可通过
TimerFcn
属性访问)应该是更新文本框的回调。