MATLAB:使用计时器操纵GUI组件的颜色?

时间:2016-05-15 13:02:51

标签: matlab timer

如何使用计时器在一定的计时器周期(比如3秒)后更改GUI组件的颜色,特别是静态文本框?

我试过

t = timer('TimerFcn', set(handles.tag,'BackgroundColor','red'),'StartDelay',3);
start(t);

但它会返回此错误:

  

在回叫期间未指定设置的一个或多个输出。

我已经知道这意味着set没有为计时器fcn提供输入参数。问题是之前已经开发出使用这种技术的7段显示器。但现在这不起作用。

1 个答案:

答案 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);