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
英文地址,請注明出處:http://en.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…