rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十八) 使用表格

使用表格egui_extras::TableBuilder

// Cargo.toml
[dependencies]
eframe = "0.32.1"
egui = "0.32.1"
egui_extras = "0.32.1"
  • egui_extras::Column::auto() 列宽根据内容自动计算
  • .resizable(true) 允许用户手动拖动调整列宽
fn main() -> eframe::Result<()> {// 配置原生窗口参数let options = eframe::NativeOptions::default();eframe::run_simple_native("使用表格", options, move |ctx, _frame| {egui::CentralPanel::default().show(ctx, |ui| {load_fonts(&ctx);// 创建一个表格egui_extras::TableBuilder::new(ui)// 设置列属性// 创建一个自动调整宽度的列.column(egui_extras::Column::auto().resizable(true))// 创建一个占据剩余可用宽度的列// 该列自动填充容器中剩余未被占用的列.column(egui_extras::Column::remainder())// 设置表头,行高20.header(20.0, |mut header| {header.col(|ui| {// 标题,加粗,字号加大等ui.heading("姓名");});header.col(|ui| {ui.heading("年龄");});})// 设置表体.body(|mut body| {// 一行数据,行高30body.row(30.0, |mut row| {// 一个单元格的数据row.col(|ui| {ui.label("小李");});row.col(|ui| {ui.button("25");});});// 一行数据body.row(30.0, |mut row| {row.col(|ui| {ui.label("小赵");});row.col(|ui| {ui.button("16");});});});});})
}

批量设置数据方式一

fn main() -> eframe::Result<()> {// 配置原生窗口参数let options = eframe::NativeOptions::default();// 生成20行10列数据let bbody: Vec<Vec<String>> = (0..20).map(|i| (0..10).map(|e| format!("{}--{}", i, e)).collect()).collect();eframe::run_simple_native("使用表格", options, move |ctx, _frame| {egui::CentralPanel::default().show(ctx, |ui| {load_fonts(&ctx);egui_extras::TableBuilder::new(ui)// 设置10列,自动调整宽度,可手动调整.columns(egui_extras::Column::auto().resizable(true), 10)// 设置表头.header(20.0, |mut header| {for idx in 0..10 {header.col(|ui| {ui.heading(format!("{}", idx));});}})// 设置表体.body(|mut body| {for idx in &bbody {body.row(30.0, |mut row| {for idy in idx {row.col(|ui| {ui.label(idy);});}});}});});})
}

批量设置数据方式二rows

fn main() -> eframe::Result<()> {// 配置原生窗口参数let options = eframe::NativeOptions::default();let bbody: Vec<Vec<String>> = (0..20).map(|i| (0..10).map(|e| format!("{}--{}", i, e)).collect()).collect();eframe::run_simple_native("使用表格", options, move |ctx, _frame| {egui::CentralPanel::default().show(ctx, |ui| {load_fonts(&ctx);egui_extras::TableBuilder::new(ui)// 设置10列,自动调整宽度,可手动调整.columns(egui_extras::Column::auto().resizable(true), 10)// 设置表头.header(20.0, |mut header| {for idx in 0..10 {header.col(|ui| {ui.heading(format!("{}", idx));});}})// 设置表体.body(|mut body| {body.rows(17., bbody.len(), |mut row| { // 所有行数据let r_idx = row.index();            // 当前行的索引if let Some(d) = bbody.get(r_idx) { // 行内有数据for idx in d {                  // 遍历一行数据row.col(|ui| {ui.label(idx);});}}});});});})
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94444.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C#】构造函数实用场景总结

文章目录前言一、构造函数是什么&#xff1f;二、构造函数的用法1.初始化对象&#xff0c;避免无效状态2 初始化静态成员3 构造函数重载4.构造函数链5. 单例模式&#xff0c;多次实例化保持一个对象6. 依赖注入7. 初始化只读对象前言 构造函数是我们平常编程里经常能碰到的老伙…

LLM预训练架构全解析:从零构建一个语言世界的“操作系统”

导读&#xff1a;作为开发者&#xff0c;我们每天都在import或#include各种库&#xff0c;我们信任这些由无数代码构成的底层依赖。那么&#xff0c;当我们调用一个LLM时&#xff0c;它所依赖的那个更底层的、无形的**“语言操作系统”**&#xff0c;又是如何被“编译”出来的&…

Linux服务测试题(DNS,NFS,DHCP,HTTP)

一&#xff0c;实验拓扑&#xff1a;二&#xff0c;需求APPSRV&#xff1a;主机名&#xff1a;appsrv.example.comip地址&#xff1a;192.168.100.10网关&#xff1a;192.168.100.254网卡为NAT模式STORAGESRV&#xff1a;主机名&#xff1a;storagesrv.example.comip地址&#…

DevOps 简介及就业前景

DevOps 简介及就业前景 目录 DevOps简介核心概念重难点解析具体场景使用就业前景学习路径最佳实践 DevOps简介 什么是DevOps DevOps是Development&#xff08;开发&#xff09;和Operations&#xff08;运维&#xff09;的组合词&#xff0c;是一种软件开发和IT运维的文化…

《CF1120D Power Tree》

题目描述 给定一棵有 n 个顶点的有根树&#xff0c;树的根为顶点 1。每个顶点都有一个非负的价格。树的叶子是指度为 1 且不是根的顶点。 Arkady 和 Vasily 在树上玩一个奇怪的游戏。游戏分为三个阶段。第一阶段&#xff0c;Arkady 购买树上的一些非空顶点集合。第二阶段&…

CPTS-Agile (Werkzeug / Flask Debug)

枚举 nmap -sC -sV -T4 -Pn -n -p- 10.10.11.203进行常规的网页枚举和测试发现报错信息&#xff0c;‘Werkzeug / Flask Debug’ 测试Export导出功能发现存在路径遍历查看这篇文章 https://book.hacktricks.wiki/zh/network-services-pentesting/pentesting-web/werkzeug.html#…

【网络运维】Shell 脚本编程:while 循环与 until 循环

Shell 脚本编程&#xff1a;while 循环与 until 循环 循环结构简介 循环语句是 Shell 脚本中用于重复执行一条或一组指令的重要工具&#xff0c;直到满足特定条件时停止执行。Shell 脚本中常见的循环语句包括 while、until、for 和 select。本文将重点介绍 while 和 until 两种…

LLM 中评价指标与训练概要介绍

在【LLM】LLM 中增量解码与模型推理解读一文中对 LLM 常见名词进行了介绍&#xff0c;本文会对 LLM 中评价指标与训练概要进行介绍&#xff0c;本文并未介绍训练实操细节&#xff0c;未来有机会再了解&#xff5e; 一、LLM 如何停止输出 在看 LLM 评价指标前&#xff0c;先看…

Java 20 新特性及具体应用

目录 1. 模式匹配 for switch&#xff08;预览特性&#xff09; 2. 记录模式&#xff08;预览特性&#xff09; 3. 外部函数与内存 API&#xff08;预览特性&#xff09; 4. 矢量 API&#xff08;孵化器特性&#xff09; 5. 作用域值&#xff08;预览特性&#xff09; 6. …

【STM32】CubeMX(十一):FreeRTOS任务挂起与解挂

这篇文章是 STM32 HAL FreeRTOS 下的任务挂起与恢复机制&#xff0c; 结合 CubeMX 图示与代码&#xff0c;构建了一个 FreeRTOS 控制示例。 本篇目标&#xff1a;创建两个任务&#xff1a; 一个控制蓝灯闪烁&#xff08;myTask01&#xff09; 另一个监控按键&#xff08;Start…

图片预加载:提升Web性能的关键

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

大模型压缩三剑客:量化、剪枝与知识蒸馏全解析

在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;如通义千问、GPT 等已成为推动智能应用的核心引擎。然而&#xff0c;这些模型动辄数十亿甚至上千亿参数&#xff0c;带来了高昂的计算成本和部署门槛。如何在不显著牺牲性能的前提下&#xff0c;让大…

Seaborn数据可视化实战:Seaborn基础图表绘制入门

基础图表绘制&#xff1a;Seaborn入门教程 学习目标 通过本课程的学习&#xff0c;你将掌握如何使用Seaborn库绘制基础图表&#xff0c;包括条形图、折线图和散点图。你将了解Seaborn的基本函数和参数设置&#xff0c;以及如何通过调整这些参数来优化图表的视觉效果。 相关知识…

阿里开源通义万相Wan2.2:视频生成技术的革命性突破

在人工智能视频生成领域,阿里云通义实验室于2025年7月重磅开源了新一代视频生成大模型 Wan2.2,其核心亮点包括人体动作生成的极致精度、电影级美学表达以及高效的资源利用效率,标志着视频生成技术迈入了一个全新的阶段。 一、核心功能:三大模型,覆盖全场景视频生成 Wan2.…

说说你对Integer缓存的理解?

大家好&#xff0c;我是锋哥。今天分享关于【说说你对Integer缓存的理解?】面试题。希望对大家有帮助&#xff1b; 说说你对Integer缓存的理解? 超硬核AI学习资料&#xff0c;现在永久免费了&#xff01; Integer 缓存是 Java 中一个优化机制&#xff0c;它主要通过缓存一部…

高速CANFD收发器ASM1042在割草机器人轮毂电机通信系统中的适配性研究

摘要割草机器人轮毂电机的通信系统对其实现自主控制和高效作业至关重要。本文旨在研究国科安芯推出的高速CANFD收发器芯片ASM1042是否能够满足割草机器人轮毂电机通信系统的复杂需求。通过详细分析轮毂电机通信系统的性能要求&#xff0c;以及ASM1042的电气、功能和环境特性&am…

MTK Linux DRM分析(十二)- KMS Panel框架层(drm_panel.c、drm_mipi_dbi.c、drm_mipi_dsi.c)

一、简介 三个代码文件(drm_mipi_dbi.c、drm_panel.c、drm_mipi_dsi.c)的分析。这些文件都是Linux内核DRM(Direct Rendering Manager)子系统的组成部分,主要用于支持显示面板,特别是通过MIPI(Mobile Industry Processor Interface)接口的显示设备。它们提供了显示驱动…

合合信息acge模型获C-MTEB第一,文本向量化迎来新突破

前言&#xff1a; 在当今时代&#xff0c;大型语言模型以其惊人的发展速度和广泛的应用前景&#xff0c;正成为全球科技界的瞩目焦点。这些模型的强大能力&#xff0c;源自于背后默默支撑它们的Embedding技术——一种将语言转化为机器可理解的数值向量的关键技术。随着大型语言…

26.内置构造函数

2.内置构造函数2.1Object2.2Array2.3String2.4number

tauri配置允许执行eval脚本,在打包cocos游戏web/phone移动端的时候一定要配置

解决办法&#xff1a;在tauriconfig中配置"csp": "default-src self asset: unsafe-inline customprotocol://* http://localhost:* ws:localhost:* unsafe-eval ipc: http://ipc.localhost; script-src unsafe-eval self https://www.googletagmanager.com uns…