[rustGUI][iced]基于rust的GUI库iced(0.13)的部件学习(02):滑动条部件 ...

打印 上一主题 下一主题

主题 871|帖子 871|积分 2613

前言
本文是关于iced库的部件介绍,iced库是基于rust的GUI库,作者自述是受Elm启发。
iced目前的版本是0.13.1,相较于此前的0.12版本,有较大改动。
本合集是基于新版本的关于分部件(widget)的利用介绍,包括源代码介绍、实例利用等。
环境配置
系统:window10
平台:visual studio code
语言:rust
库:iced 0.13
slider部件简介

iced的官方定义,slider的功能是:
Sliders let users set a value by moving an indicator.
1、slider的定义与参数

官方源码
  1. pub struct Slider<'a, T, Message, Theme = crate::Theme>
  2. where
  3.     Theme: Catalog,
  4. {
  5.     range: RangeInclusive<T>,
  6.     step: T,
  7.     shift_step: Option<T>,
  8.     value: T,
  9.     default: Option<T>,
  10.     on_change: Box<dyn Fn(T) -> Message + 'a>,
  11.     on_release: Option<Message>,
  12.     width: Length,
  13.     height: f32,
  14.     class: Theme::Class<'a>,
  15. }
复制代码
range,顾名思义,指的是slider的滑动范围,它的类型是:RangeInclusive,这里的T是泛型,而RanInclusive的实现形式如下:
1..=3
表现slider的滑动范围的起始值为1,结束值为3。也可以理解为最小值和最大值。
step表现slider的步长,即滑动时每移动一个单元的长度,默认为为1.0。
value表现slider的当前值,即滑动过程的过程值。
on_change是slider的滑动事件处理函数,即滑动时会触发此函数,函数的返回消息中包罗有实时值。

2、实例利用

我们添加一个slider以及一个text部件,当我们滑动slider时,text实时显示slider的值,并且text的文本尺寸会随着slider的值的变化而变化。
先来修改代码:
为结构体Counter创建一个变量,用于传递slider的值。
  1. slider(0.0..=100.0, state.value, Message::ValueChanged)
复制代码
然后新建一个Message,用于监控slider的滑动事件:
  1. range: RangeInclusive<T>,
  2. step: T,
  3. value: T,
  4. on_change: Box<dyn Fn(T) -> Message + 'a>,
复制代码
然后就是update和view中的更新与渲染:
update:
  1. #[derive(Clone,Default)]
  2. struct Counter {
  3.     slidervalue:f32,
  4. }
复制代码
view:
  1. #[derive(Debug,Clone, Copy)]
  2. enum Message {
  3.     SliderChange(f32),
  4. }
复制代码
此例中,我们将slider的range设置为1.0到100.0,并且将变量slidervalue绑定到了text的size参数。
我们看一下动态演示:

当然,上面演示的是很简朴的应用,事实上,slider可以用于调解应用程序中的某些输入参数值,也可以调解结构的大小,比如调解图像显示区域等。这些在后续的博文中都会应用到,本文不做赘述。
3、综述

slider部件与button、text等部件,都属于比较常用的部件,无论是用于窗口界面的输入,照旧用于结构的调解,都可以很好的利用。本文以slider为例,介绍一下单个部件的利用,后续博文中,将不再单独介绍某个部件,而是以功能应用为导向,附带部件的利用介绍。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农民

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表