文章目录
- 1.问题描述
- 2.代码设置
- 代码示例
- 解释
1.问题描述
我们在做MATLAB的时候,一般需要在APP界面中加上时间显示,像下图中的右上角,在组件中有日期选择器,但是这个并不是实时显示的,我们还需要自己进行设置。
2.代码设置
我们只需要打开代码视图界面,找到 function startupFcn(app)这个函数,
在 startupFcn
内初始化定时器
将定时器对象作为局部变量定义,并在 startupFcn
内部进行初始化和启动。同时,定义一个嵌套函数 updateDatePicker
用于更新 DatePicker
。
代码示例
function startupFcn(app)% 创建定时器对象updateTimer = timer('ExecutionMode', 'fixedRate', ...'Period', 1, ...'TimerFcn', @(~,~) updateDatePicker());% 启动定时器start(updateTimer);% 嵌套函数:更新 DatePicker 的值function updateDatePicker()app.DatePicker.Value = datetime('now');end% 清理函数:停止并删除定时器cleanupObj = onCleanup(@() stopAndDeleteTimer(updateTimer));function stopAndDeleteTimer(t)if isvalid(t)stop(t);delete(t);endend
end
解释
-
定时器初始化:
updateTimer = timer('ExecutionMode', 'fixedRate', ...'Period', 1, ...'TimerFcn', @(~,~) updateDatePicker());
-
启动定时器:
start(updateTimer);
-
嵌套函数
updateDatePicker
用于更新DatePicker
的值:function updateDatePicker()app.DatePicker.Value = datetime('now'); end
-
清理函数
stopAndDeleteTimer
用于停止并删除定时器:cleanupObj = onCleanup(@() stopAndDeleteTimer(updateTimer));function stopAndDeleteTimer(t)if isvalid(t)stop(t);delete(t);end end
使用 onCleanup
对象,确保在 startupFcn
执行完毕时,定时器能够被正确清理。
这样就可以在 startupFcn
内完成定时器的创建、启动、更新和清理。