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§
§impl Timer
impl Timer
pub 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.
pub 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.");
});
pub fn stop(&self)
pub fn stop(&self)
Stops the previously started timer. Does nothing if the timer has never been started.
pub 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.
pub fn set_interval(&self, interval: Duration)
pub fn set_interval(&self, interval: Duration)
Change the duration of 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.
Arguments:
interval
: The duration from now until when the timer should fire. And the period of that timer forRepeated
timers.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Timer
impl Send for Timer
impl !Sync for Timer
impl Unpin for Timer
impl UnwindSafe for Timer
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for Pwhere
R: Read + ReadEndian<P>,
P: Default,
impl<R, P> ReadPrimitive<R> for Pwhere R: Read + ReadEndian<P>, P: Default,
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.