<Rust>egui学习之部件(十一):如何在窗口中添加单选框radiobutton部件?

前言

本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析,主要讲解egui的源代码、部件属性、如何应用。

环境配置

系统:windows

平台:visual studio code

语言:rust

库:egui、eframe

概述

本文是本专栏的第十一篇博文,主要讲述单选按钮radiobutton部件的使用。

事实上,类似于iced,egui都提供了示例程序,本专栏的博文都是建立在官方示例程序以及源代码的基础上,进行的实例讲解。
即,本专栏的文章并非只是简单的翻译egui的官方示例与文档,而是针对于官方代码进行的实际使用,会在官方的代码上进行修改,包括解决一些问题。

系列博客链接:

1、<Rust>egui学习之小部件(一):如何在窗口及部件显示中文字符?

2、<Rust>egui学习之小部件(二):如何在egui窗口中添加按钮button以及标签label部件?

3、<Rust>egui学习之小部件(三):如何为窗口UI元件设置布局(间隔、水平、垂直排列)?

4、<Rust>egui学习之小部件(四):如何在窗口中添加滚动条Scroll部件?

5、<Rust>egui学习之小部件(五):如何在窗口中添加图像部件?

6、<Rust>egui学习之小部件(六):如何在窗口中添加菜单栏部件?

7、<Rust>egui学习之小部件(七):如何在窗口中添加颜色选择器colorpicker部件?

8、<Rust>egui学习之小部件(八):如何在窗口中添加滑动条slider部件?

9、<Rust>egui学习之小部件(九):如何在窗口中添加下拉列表combobox部件?

10、<Rust>egui学习之小部件(十):如何在窗口中添加复选框checkbox部件?

部件属性

在egui中,radiobutton创建单选框,用于选择唯一性。其属性如下:

rust 复制代码
pub struct RadioButton {
    checked: bool,
    text: WidgetText,
}

你可以直接使用:

rust 复制代码
RadioButton::new() 

来创建一个单选框,但更推荐的是使用:

rust 复制代码
ui.radio_value(&mut my_enum, Enum::First, "First");

这种方式来使用。

我们来看一下实际应用,我们创建三个radiobutton,分别是A、B、C,当选择其中任意一项时,标签文本显示当前选项。

rust 复制代码
ui.horizontal(|ui|{
                ui.radio_value(&mut self.radiovalue, ZM::A, "A");  
                ui.radio_value(&mut self.radiovalue, ZM::B, "B");
                ui.radio_value(&mut self.radiovalue, ZM::C, "C");
            }
            );
            ui.label(format!("当前单选框是:{:?}",self.radiovalue));

此处,ZM是我们新建的一个枚举:

rust 复制代码
#[derive(Debug,PartialEq)]
enum ZM{A,B,C}

当我们选择其中一个radiobutton后,它的selected_value就会传递给current_value。

以上就是radiobutton在egui中的使用。

相关推荐
多弗朗皮卡丘3 分钟前
C++特殊类设计
开发语言·c++·设计模式
Wang's Blog18 分钟前
Java 项目实战: 交友项目 - 查询单条动态:动态详情页的接口与实现
java·开发语言·交友
yuniko-n18 分钟前
【JUC】CAS
java·开发语言
紧跟先前的步伐21 分钟前
Go AI Agent 实战 17|模型适配层设计:让模型可替换
开发语言·人工智能·后端·ai·golang
小灰灰搞电子32 分钟前
Qt 中使用 QSettings 存储结构体数据详解
开发语言·qt
代码山河32 分钟前
调试技巧:IDEA Debug模式入门与使用
java·学习·架构·教程·面向对象·项目
外收内放37 分钟前
FastAPI猜字谜实战(5):会话管理
开发语言·python·学习·fastapi
Ai-_Man38 分钟前
Microsoft Copilot对话数据怎么导入到另外一个Microsoft Copilot账号里去?AI导出鸭
开发语言·javascript·人工智能·microsoft·chatgpt·ecmascript·copilot
叼烟扛炮40 分钟前
Linux 学习笔记(三十一):线程概念、底层分页机制与初体验
linux·运维·服务器·笔记·学习·1024程序员节
H.莓飛43 分钟前
【数据结构】归并与外排序
linux·服务器·c语言·开发语言·数据结构·visual studio