Skip to content

Timer

This example shows a timer that counts down from 10 to 0 every second:

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; }
}
}
}
slint

Use the Timer pseudo-element to schedule a callback at a given interval. The timer is only running when the running property is set to true. To stop or start the timer, set that property to true or false. It can be also set to a binding expression. When already running, the timer will be restarted if the interval property is changed.

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;
}
}
slint

Properties

interval

duration default: 0ms

The interval between timer ticks. This property is mandatory.

Timer {
property <int> count: 0;
interval: 250ms;
triggered() => {
debug("count is:", count);
count += 1;
}
}
slint

running

bool default: true

true if the timer is running.

Timer {
property <int> count: 0;
interval: 250ms;
running: false; // timer is not running
triggered() => {
debug("count is:", count);
}
}
slint

Callbacks

triggered()

Invoked every time the timer ticks (every interval).

Timer {
property <int> count: 0;
interval: 250ms;
triggered() => {
debug("count is:", count);
}
}
slint

© 2024 SixtyFPS GmbH