pub struct Timer { /* private fields */ }
Expand description
Timer is a handle to the timer system that allows triggering a callback to be called after a specified period of time.
Use Timer::start()
to create a timer that can repeat at frequent interval, or
Timer::single_shot
if you just want to call a function with a delay and do not
need to be able to stop it.
The timer will automatically stop when dropped. You must keep the Timer object around for as long as you want the timer to keep firing.
The timer can only be used in the thread that runs the Slint event loop. They will not fire if used in another thread.
§Example
use slint::{Timer, TimerMode};
let timer = Timer::default();
timer.start(TimerMode::Repeated, std::time::Duration::from_millis(200), move || {
println!("This will be printed every 200ms.");
});
// ... more initialization ...
slint::run_event_loop();
Implementations§
Source§impl Timer
impl Timer
Sourcepub fn start(
&self,
mode: TimerMode,
interval: Duration,
callback: impl FnMut() + 'static,
)
pub fn start( &self, mode: TimerMode, interval: Duration, callback: impl FnMut() + 'static, )
Starts the timer with the given mode and interval, in order for the callback to called when the timer fires. If the timer has been started previously and not fired yet, then it will be restarted.
Arguments:
mode
: The timer mode to apply, i.e. whether to repeatedly fire the timer or just once.interval
: The duration from now until when the timer should fire. And the period of that timer forRepeated
timers.callback
: The function to call when the time has been reached or exceeded.
Sourcepub fn single_shot(duration: Duration, callback: impl FnOnce() + 'static)
pub fn single_shot(duration: Duration, callback: impl FnOnce() + 'static)
Starts the timer with the duration, in order for the callback to called when the timer fires. It is fired only once and then deleted.
Arguments:
duration
: The duration from now until when the timer should fire.callback
: The function to call when the time has been reached or exceeded.
§Example
use slint::Timer;
Timer::single_shot(std::time::Duration::from_millis(200), move || {
println!("This will be printed after 200ms.");
});
Sourcepub fn stop(&self)
pub fn stop(&self)
Stops the previously started timer. Does nothing if the timer has never been started.
Sourcepub fn restart(&self)
pub fn restart(&self)
Restarts the timer. If the timer was previously started by calling Self::start()
with a duration and callback, then the time when the callback will be next invoked
is re-calculated to be in the specified duration relative to when this function is called.
Does nothing if the timer was never started.
Sourcepub fn set_interval(&self, interval: Duration)
pub fn set_interval(&self, interval: Duration)
Change the duration of timer. If the timer was is running (see Self::running()
),
then the time when the callback will be next invoked is re-calculated to be in the
specified duration relative to when this function is called.
Arguments:
interval
: The duration from now until when the timer should fire. And the period of that timer forRepeated
timers.