Radio/RadioGroup(单选项组件)

单选项

pub fn new(label: impl Into<LabelText<T>>, variant: T) -> Radio<T>

创建一个单选项

let png = Radio::new("png", ImageType::PNG).lens(AppState::image_type1);

一组单选按钮
给出一个(label_text, enum_variant)图元的向量,创建一组Radio按钮

pub fn new<T: Data + PartialEq>(
    variants: impl IntoIterator<Item = (impl Into<LabelText<T>> + 'static, T)>
) -> impl Widget<T>

示例,实现一组单选框按钮

use druid::{
    AppLauncher,Widget, widget::{Flex, RadioGroup}, Data, Lens, WindowDesc, WidgetExt};


#[derive(Data,Lens,Clone, Copy)]
struct AppState{
    image_type:ImageType
}

//单选 选项
#[derive(Clone, Copy, PartialEq, Data)]
enum ImageType {
    PNG,
    JPEG,
    ICON,
}

fn build_main() -> impl Widget<AppState> {

    //创建一组单选按钮
    let radio_group = RadioGroup::row(vec![
        ("png",ImageType::PNG),
        ("jpeg",ImageType::JPEG),
        ("icon",ImageType::ICON)
        ]).lens(AppState::image_type);

    Flex::row()
        .with_child(radio_group)
}

fn main() {
    //创建窗体
    let win = WindowDesc::new(build_main()).title("单选demo");

    let _ = AppLauncher::with_window(win).launch(AppState{image_type:ImageType::PNG});
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若梦网络编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值