估值器 Valuators
FLTK提供的Valuator
组件均实现了ValuatorExt trait
。这些组件会在内部跟踪步长step
,范围range
和边界bound
这些数据,你会在图形界面上看到它们的具体作用。
你可能在别的地方使用过Scrollbar
和Sliders
这些组件。可以在Valuator
mod中找到这些组件:
- Slider
- NiceSlider
- ValueSlider
- Dial
- LineDial
- Counter
- Scrollbar
- Roller
- Adjuster
- ValueInput
- ValueOutput
- FillSlider
- FillDial
- HorSlider (Horizontal slider)
- HorFillSlider
- HorNiceSlider
- HorValueSlider
在图形界面通过拖动等方式改变Valuator
的值会触发其回调。Valuator
的当前值可以通过value()
方法来获取,可以用set_value()
来设置其值。根据使用情况,你也可以获取和改变range
和step
的值:
use fltk::{prelude::*, *}; fn main() { let a = app::App::default(); let mut win = window::Window::default().with_size(400, 300); let mut slider = valuator::HorNiceSlider::default().with_size(400, 20).center_of_parent(); slider.set_minimum(0.); slider.set_maximum(100.); slider.set_step(1., 1); // 设置步长为10 slider.set_value(50.); // 设置开始 win.end(); win.show(); slider.set_callback(|s| { println!("slider at {}", s.value()); }); a.run().unwrap(); }
下面列举了使用不同的 Valuator
组件实现这个例子的效果:
展开查看示例
Adjuster widget
Counter widget
Dial widget
FillDial widget
FillSlider widget
HorFillSlider widget
HorNiceSlider widget
HorSlider widget
HorValueSlider widget
LineDial widget
NiceSlider widget
Roller widget
Scrollbar widget
Slider widget
ValueInput widget
ValueOutput widget
ValueSlider widget
Valuator 枚举
fltk::valuator
枚举为Valuator
组件提供了一些可用的特性。如果你要使用这些效果,请添加下面的代码:
#![allow(unused)] fn main() { let mut valuator_object = valuator::Counter::default().with_size(200, 50).center_of_parent(); // 为你的组件添加下面这行代码 valuator_object.clone().with_type(fltk::valuator::CounterType::Simple); }
下面演示了 Counter
, Dial
, Scrollbar
和Slider
组件使用这些特性的示例: