如何使用计时器在一定的计时器周期(比如3秒)后更改GUI组件的颜色,特别是静态文本框?
我试过
t = timer('TimerFcn', set(handles.tag,'BackgroundColor','red'),'StartDelay',3);
start(t);
但它会返回此错误:
在回叫期间未指定设置的一个或多个输出。
我已经知道这意味着set没有为计时器fcn提供输入参数。问题是之前已经开发出使用这种技术的7段显示器。但现在这不起作用。
答案 0 :(得分:1)
'TimerFcn'
参数应定义回调 - it has to be in one of the following forms:
定义计时器回调的字符串,函数句柄或单元数组 功能
您应该将回调指定为函数句柄,接受[至少]两个参数(计时器对象/事件):
如果使用函数句柄指定此属性,则使用MATLAB 执行它传递计时器对象和事件的回调 回调函数的结构。
您可以使用匿名函数,只需忽略这两个参数:
handles.tag = uicontrol('Style', 'text', 'String', 'Some text');
t = timer('TimerFcn', @(~,~) set(handles.tag,'BackgroundColor','red'), 'StartDelay',3);
start(t);