1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
use iced::{slider, Column, Element, ProgressBar, Sandbox, Settings, Slider}; pub fn main() { Progress::run(Settings::default()) } #[derive(Default)] struct Progress { value: f32, progress_bar_slider: slider::State, } #[derive(Debug, Clone, Copy)] enum Message { SliderChanged(f32), } impl Sandbox for Progress { type Message = Message; fn new() -> Self { Self::default() } fn title(&self) -> String { String::from("A simple Progressbar") } fn update(&mut self, message: Message) { match message { Message::SliderChanged(x) => self.value = x, } } fn view(&mut self) -> Element<Message> { Column::new() .padding(20) .push(ProgressBar::new(0.0..=100.0, self.value)) .push( Slider::new( &mut self.progress_bar_slider, 0.0..=100.0, self.value, Message::SliderChanged, ) .step(0.01), ) .into() } }