注意
Timer 并不是树中实际可见的元素,因此它没有 x、y、width、height 等通用属性。它也不会在布局中占用空间,不能有任何子元素,也不能被继承。
此示例展示了一个每秒从 10 倒数到 0 的计时器:
slint
import { Button } from "std-widgets.slint";export component Example inherits Window { property <int> value: 10; timer := Timer { interval: 1s; running: true; triggered() => { value -= 1; if (value == 0) { self.running = false; } } } HorizontalLayout { Text { text: value; } Button { text: "Reset"; clicked() => { value = 10; timer.running = true; } } }}使用 Timer 伪元素以给定间隔调度回调。 仅当 running 属性设置为 true 时,计时器才会运行。要停止或启动计时器,将该属性设置为 true 或 false。 它也可以设置为绑定表达式。 当已经在运行时,如果 interval 属性更改,计时器将重新启动。
警告
默认情况下,Timer 始终运行 running: true。这可能会导致持续的 CPU 使用和电量消耗,因此当你不想让计时器运行时,请确保将 running 设置为 false。
slint
property <int> count: 0;Timer { interval: 8s; // every 8 seconds the timer will activate (tick) triggered() => { // The triggered callback activates every time the timer ticks if count >= 5 { self.running = false; // stop the timer after 5 ticks } count += 1; }}属性
interval
duration 默认:0ms
计时器 tick 之间的间隔。此属性是必需的。
slint
Timer { property <int> count: 0; interval: 250ms; triggered() => { debug("count is:", count); count += 1; }}running
bool 默认:true
如果计时器正在运行,则为 true。
slint
Timer { property <int> count: 0; interval: 250ms; running: false; // timer is not running triggered() => { debug("count is:", count); }}回调
triggered()
每当计时器 tick(每个 interval)时调用。
slint
Timer { property <int> count: 0; interval: 250ms; triggered() => { debug("count is:", count); }}函数
start()
启动计时器(等同于将 running 设置为 true)。
stop()
停止计时器(等同于将 running 设置为 false)。
restart()
如果计时器先前已启动,则重新启动它。