- 博客(80)
- 资源 (5)
- 收藏
- 关注
原创 rust语言,将JSON中的所有值以字符串形式存储到sqlite数据库中(逐行注释)
摘要:本文介绍了一个JSON数据处理工具,能够将所有JSON中的数字类型转换为字符串类型,保持精度不变。主要功能包括:处理普通数值、超大数值、列表中的数值以及字典中的数值。实现方法使用Rust语言,结合正则表达式进行数值匹配转换,最终将转换后的JSON数据存储到SQLite数据库中。文中提供了完整的代码实现,包括JSON解析、数值转换、数据库操作等关键步骤,并演示了如何处理包含各种数据类型(整数、浮点数、超大数、布尔值)的复杂JSON结构。
2025-11-17 17:30:01
236
原创 rust语言,使用正则,将JSON中的数值类型,加引号转换为字符串类型,确保精度不变
本文介绍了一种将JSON中的数值类型转换为字符串类型的方法,以保持原始数值的精度。通过正则表达式匹配JSON中的数值(包括整数、浮点数等),并为其添加双引号转为字符串格式。该方法能处理对象键值对和数组中的数值,同时保留已有字符串类型的值不变。代码示例展示了如何转换包含各种数值的复杂JSON结构,并验证转换后JSON的有效性。这种转换可避免数值在传输和处理过程中的精度损失问题。
2025-11-17 16:46:20
190
原创 rust语言JSON字符串解析方法学习
本文介绍了Rust中处理JSON的5种方法:1) 使用serde_json库进行结构化序列化/反序列化;2) 通过serde_json::Value动态解析未知结构;3) 使用simd-json进行高性能处理;4) 标准库的基础JSON支持;5) 手动解析原理。对比分析了各方案特点及适用场景,推荐优先使用功能完善、类型安全的serde_json库。文章提供了各方法的代码示例,并总结了不同场景下的最佳实践方案。
2025-10-15 09:31:41
520
原创 rust语言项目实战:生成福彩、体彩所有玩法的所有数字组合(逐行注释)
本文介绍了中国福利彩票和体育彩票的主要玩法及其组合生成算法。主要内容包括: 彩票玩法分类:福彩(双色球、快乐8、3D、七乐彩)和体彩(大乐透、七星彩、排列三/五、3D、22选5)的主要玩法。 组合生成算法:通过Rust代码实现了两种核心算法: 不重复数字组合生成(用于双色球、大乐透等) 可重复数字排列生成(用于3D、排列三/五等) 算法特点: 采用迭代而非递归方式,避免栈溢出 预计算组合数并预分配内存,提高效率 支持大规模组合生成(如快乐8理论组合数达1.6万亿) 输出示例:展示了各玩法前后5个组合及总组合
2025-09-18 15:53:55
357
原创 rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
本文介绍了Rust项目中使用Cargo工作区管理多个子项目的方法。项目结构包含client和server两个可执行程序,通过根目录的Cargo.toml定义工作区配置和共享依赖。每个子项目有自己的Cargo.toml,可引用工作区依赖。文章详细说明了构建命令:cargo build可编译整个项目,-p参数可单独构建指定子项目,cargo run -p可并行运行不同子项目。构建产物默认输出到target/debug或target/release目录下。这种结构适用于需要管理多个关联可执行程序的Rust项目。
2025-09-12 17:23:14
322
原创 rust语言 (1.88) egui (0.32.2) 学习笔记(逐行注释)(二十八)使用图片控件显示图片
本文介绍了在Rust中使用egui框架加载和显示图片的完整方法。主要内容包括:1)添加依赖并注册图像加载器到egui上下文;2)三种图片控件使用方式(ui.image()、ui.add()和直接调用Image::new().ui());3)多种图片加载途径(URL、字节数据和纹理加载);4)图片处理方法(缩放、旋转、圆角、着色和裁剪等)。重点讲解了纹理加载原理及常用图片处理API,如max_size()、bg_fill()、rotate()等,并提供了详细的代码示例和效果图示,帮助开发者快速掌握egui中的
2025-09-12 14:06:32
543
原创 rust语言 (1.88) egui (0.32.2) 学习笔记(逐行注释)(二十七)窗口相关常用方法
这段Rust代码展示了如何使用eframe库配置窗口属性。通过NativeOptions结构体可以设置窗口标题、尺寸范围(初始300x400,最小200x200,最大500x500)、透明度、图标等。支持控制标题栏装饰、按钮(关闭/最小化/最大化)、调整大小、置顶/置底、任务栏显示等特性。窗口位置可指定坐标或居中显示,透明效果和全屏模式也可配置。代码注释详细说明了各参数的默认值和使用方法,适用于Windows系统下的GUI应用开发。
2025-09-08 10:14:45
137
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十六)windows平台运行时隐藏控制台
本文简要介绍了Rust程序的Windows子系统配置和编译运行步骤:1) 需在主程序首行添加#![cfg_attr(windows, windows_subsystem = "windows")];2) 使用cargo build --release命令编译;3) 编译完成后在target/release目录下运行生成的可执行文件。全文简明扼要地说明了Rust项目从配置到运行的完整流程。
2025-09-05 14:08:56
225
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十五)窗口图标 / 任务栏图标
本文介绍了在Rust中使用eframe和egui设置窗口图标的两种方法。关键点包括:图片格式必须匹配(如ICO、PNG等),宽高需与实际尺寸一致。第一种方法直接加载ICO文件并转换为RGBA8格式;第二种方法封装为函数,支持从指定路径加载PNG等格式图片。两种方法最终都将图片数据封装为IconData结构体,并通过ViewportBuilder设置窗口图标。特别注意图片格式和尺寸必须准确,否则可能导致显示异常。
2025-09-05 10:26:12
477
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十四)窗口颜色、透明度、居中显示
本文介绍了使用Rust的egui库创建透明可调色窗口的方法。第一部分展示了如何通过设置Color32::from_rgba_premultiplied()实现固定透明度和颜色的窗口效果。第二部分进阶实现,通过添加滑块控件动态调整窗口的RGB颜色分量和透明度(0-1范围)。关键代码包括创建透明视口、设置颜色值和使用滑块交互组件,实现了运行时可实时调节窗口外观的效果。
2025-09-02 09:56:37
917
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十三)控件中常用文本格式
本文介绍了Rust GUI框架egui中的RichText控件使用方法。通过RichText可以设置文本样式,包括颜色、大小、背景色等属性,并支持多种文本效果如斜体、下划线、删除线等。代码示例展示了如何创建不同样式的文本控件,包括标题、按钮和标签,并演示了颜色设置(RGB和RGBA格式)、字体大小调整以及各种文本修饰效果的应用。这些功能可以帮助开发者创建更具表现力的用户界面元素。
2025-09-01 16:43:33
413
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十二)控件的可见、可用性
本文介绍了在egui框架中控制控件显示和启用的两种方法: 显示/隐藏控件:通过布尔变量is_show控制一组控件的可见性,点击按钮切换该变量状态,实现控件的显示或隐藏。 启用/禁用控件:使用布尔变量is_enabled控制控件的可用性,通过ui.add_enabled()方法实现按钮和文本框等控件的启用或禁用状态切换。 两种方法都通过简单按钮点击事件来改变布尔变量状态,从而实现对界面控件的动态控制。
2025-09-01 11:17:25
213
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十一)布局-两列控件平分宽度并分别居中
这段Rust代码使用egui库创建了一个水平分割的UI界面。通过CentralPanel将窗口分为左右两半,每半宽度为总宽度的一半,高度为可用高度。左侧面板使用top_down布局居中显示5个"A"标签和水平分隔线,右侧面板同样布局显示4个"B"标签和分隔线。两个面板之间用垂直分隔线隔开,实现了简洁的左右对称布局效果。代码展示了egui的布局分配、对齐方式和分隔线使用等核心功能。
2025-08-31 19:04:23
179
原创 rust语言(1.88.0)sqlite数据库rusqlite库(0.37.0)学习笔记
本文介绍了Rust中使用rusqlite库操作SQLite数据库的主要方法,包括基本CRUD操作、事务处理和常见注意事项。主要内容: 基本操作:创建表、插入数据、查询数据(支持结构体映射)、更新和删除记录 事务处理:使用transaction()创建事务,通过commit()提交 参数绑定:比较了?1命名参数和?匿名参数的区别,推荐使用params!宏 冲突处理:介绍了INSERT OR IGNORE、INSERT OR REPLACE和ON CONFLICT语法 日期时间:使用CURRENT_TIMEST
2025-08-27 17:19:33
1312
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十) 文件、文件夹选择框、保存文件框
这篇文章介绍了如何使用Rust的egui框架实现文件对话框功能。主要包括:1)Cargo.toml依赖配置;2)基础框架代码;3)四种文件操作:选择文件夹(pick_folder)、选择单个文件(pick_file)、多文件选择(pick_files)和保存文件(save_file)。每种操作都提供了代码示例,支持路径显示、文件过滤和初始目录设置等功能,适合构建跨平台GUI应用的文件选择功能。
2025-08-25 19:41:37
288
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十九)子窗口
文章摘要 本文介绍了在Rust中使用egui库创建子窗口的方法show_viewport_immediate。主要内容包括: ViewportBuilder的常用配置方法:设置标题、默认大小、最小/最大值 主窗口创建示例,包含自定义窗口尺寸和字体设置 子窗口的两种控制方式:通过toggle_value或按钮点击切换显示 子窗口创建实现,包括唯一标识设置、标题配置和关闭请求处理 代码示例展示了如何创建带有主窗口和可切换子窗口的应用程序框架,支持中文显示和窗口大小控制。
2025-08-25 16:13:01
396
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十八) 使用表格
本文介绍了如何使用egui_extras::TableBuilder创建表格的三种方法:1) 基础表格创建,包含自动调整列宽和手动调整功能;2) 批量设置数据方式,通过向量生成多行多列表格;3) 使用rows方法批量设置数据,按行索引获取数据。所有示例都包含表头设置和表体数据填充的实现代码,适合需要快速构建GUI表格界面的Rust开发者参考。
2025-08-24 23:24:02
349
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十七)设置主题
文章摘要:介绍了如何使用set_visuals方法设置GUI应用程序的视觉主题,包括暗色(Visuals::dark())和亮色(Visuals::light())主题。还展示了如何通过按钮点击事件动态切换主题,根据当前主题状态判断并设置对应的主题样式。代码示例演示了在egui框架下实现主题设置和切换的基本方法。
2025-08-24 22:09:04
313
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十六)层级列表
摘要 本文展示如何使用egui库中的CollapsingHeader创建层级列表。代码示例演示了两级嵌套结构:第一层是简单的标题-文本组合("head1"->"text1"),第二层则展示了嵌套的折叠标题("head2"->"head2-1"->"text2")。该功能通过show()方法实现内容展开/折叠,适用于需要分级显示信息的GUI界面。
2025-08-24 22:05:18
138
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十五)网格布局
摘要 本文演示了如何使用egui的网格布局Grid来创建多行多列的界面元素。通过ui.end_row()方法可以结束当前行并开始新的一行。示例代码展示了如何生成嵌套列表数据,并在网格布局中逐行显示这些数据,每个元素占据一个网格单元。主要要点包括网格布局的创建、行结束标记的使用,以及结合CentralPanel构建完整界面。
2025-08-24 22:02:24
296
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十四)垂直滚动条
本文介绍了在Rust中使用egui库创建垂直滚动条的三种方法。1. 基本垂直滚动条:通过ScrollArea::vertical()展示0-99的数字列表;2. 优化性能的滚动条:使用show_rows()方法只渲染可见部分,指定行高和总行数;3. 右侧对齐滚动条:通过set_width()和available_width()让滚动条靠右显示。三种方法均以CentralPanel为容器,适合处理长列表数据展示需求。
2025-08-24 19:40:25
279
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十三)菜单、右键菜单
EGUI菜单使用摘要 本文介绍了EGUI框架中菜单功能的实现方法,包括主菜单和右键菜单。主要内容: 主菜单结构:使用menu_button创建可嵌套的层级菜单,最终节点为按钮控件 菜单点击事件:通过按钮的clicked()方法处理菜单项点击 菜单复选框:在菜单中使用checkbox控件实现选项选择 右键菜单:使用context_menu为按钮和标签添加右键上下文菜单 当前存在一个问题:点击菜单项后菜单不会自动关闭,需要手动处理。
2025-08-24 19:02:02
465
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十二)下拉列表
本文介绍了Rust中使用egui库创建下拉列表(ComboBox)的三种实现方式:1)基础用法,通过数组定义选项和当前选中索引;2)数字列表应用,动态生成0-19的索引选项;3)动态添加选项,通过文本框输入和按钮点击向列表添加新项。每种实现都包含代码示例,展示了索引管理、选项显示和交互事件处理等核心功能。
2025-08-24 15:09:38
267
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十一)面板
这段代码展示了如何使用egui库创建GUI面板布局,主要包括: 基本面板使用:顶部、底部、左侧、右侧和中央面板的创建方法 中文字体设置:通过load_fonts(&ctx)函数全局设置字体 面板嵌套示例:通过循环创建40个面板,按取模运算分布在窗口四周 面板ID管理:使用字符串ID标识每个面板 代码结构清晰,展示了egui面板系统的基本用法和布局能力。
2025-08-24 11:57:45
329
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十)复选框、单选框
本文介绍了Rust中两种UI控件的使用方法:1) 复选框checkbox,包括单个创建和批量创建方式;2) 单选框radio_value,支持基础数值和枚举类型。通过代码示例展示了如何定义变量、创建控件以及处理选项值,其中批量创建复选框使用了Vec<bool>集合,枚举类型单选框则实现了PartialEq和自定义显示方法。
2025-08-24 10:23:42
216
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(九)数值拖拽控件、进度条、滑动条
本文介绍了Rust GUI框架egui中的三种数值控件:1) DragValue数值拖拽控件,支持拖拽、键盘输入和步进调整,可设置范围、步长和显示格式;2) ProgressBar进度条,可自定义颜色、显示百分比和文本;3) Slider滑动条,支持水平和垂直布局,可配置滑动速度、文本样式等。三种控件可联动操作同一变量,文中提供了完整的代码示例展示如何同时使用这三种控件来控制一个浮点数值,并演示了各自的参数配置方法。这些控件适用于需要交互式调整数值的场景,如游戏参数调节、数据可视化等。
2025-08-23 23:34:01
431
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(八)按键事件
摘要 本文介绍了Rust GUI框架egui中的按键事件处理机制,包括: 单个按键使用ui.input和key_pressed方法 组合键使用ui.input_mut和consume_key方法 提供了四种按键检测示例代码(单键、双键组合、多键组合、无修饰键) 展示了一个实际应用场景:通过回车键将文本框内容添加到列表,并保持输入框焦点 文中还提到字体设置等其他功能可参考作者博客,所有代码示例均使用Rust语言编写。
2025-08-23 23:23:39
240
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(七) 鼠标在控件上悬浮时的提示
Rust UI库中的悬浮提示功能支持两种实现方式:on_hover_text用于显示简单文本提示,而on_hover_ui则允许在提示框中嵌入完整控件。前者适合简单描述(如标签、输入框说明),后者可实现复杂交互式提示内容(如动态生成多个组件)。两种方法都能通过鼠标悬停触发,为界面元素提供即时说明或扩展功能。
2025-08-23 22:15:49
233
原创 rust语言 (1.88) egui (0.32.2) 学习笔记(逐行注释)(六)控件的三种创建方式、控件的悬浮提示(新)
本文介绍了Rust GUI库egui中控件的三种创建方式:1)直接添加基础控件,样式控制有限;2)使用widgets构建器链式调用,提供更多样式控制;3)通过ui()方法注入父级UI上下文。三种方式本质相同,最终都调用第三种方式实现。此外还展示了如何为控件添加悬浮提示文本,以及更复杂的悬浮UI组件功能,可以在提示中显示多个子控件。这些方法提供了灵活多样的UI构建方式。
2025-08-22 14:05:41
176
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(五)删除一行动态添加的组件
这篇文章展示了一个使用Rust的egui框架构建的简单GUI应用。该程序实现了一个文本添加和删除功能:用户可以通过输入框添加文本内容,点击按钮将文本添加到列表中;每条文本右侧有删除按钮,点击可移除对应条目。代码演示了基本的GUI布局(水平/垂直排列)、文本输入处理、按钮交互以及动态列表操作。程序采用eframe作为应用框架,使用egui进行界面渲染,展现了如何用Rust构建轻量级图形界面应用的典型模式。
2025-08-22 09:35:52
118
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(四) 水平布局、垂直布局
本文展示了一个使用egui框架实现简单UI布局的Rust代码示例。通过eframe创建原生窗口,在中央面板中演示了两种基本布局方式:水平布局(horizontal)和垂直布局(vertical)。代码分别用50个标签展示了水平排列和垂直排列的效果,并包含字体加载提示(具体实现需参考外部资源)。该示例清晰地呈现了egui声明式UI的简洁语法和基本布局功能。
2025-08-21 15:10:43
244
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(三) 文本标签、按钮、文本框基本使用
本文介绍了使用Rust和egui框架创建GUI应用的基本方法。通过四个示例展示了如何实现:1)基本文本标签、按钮和文本框的显示;2)共享变量实现组件间数据同步;3)按钮点击事件处理和数据修改;4)动态添加和管理多个标签。文中特别强调了中文显示问题的解决方案,并提供了完整的代码示例,展示了如何通过变量绑定实现组件间的数据交互。这些示例为构建更复杂的GUI界面奠定了基础。
2025-08-21 14:32:07
354
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二)设置中文字体,解决中文乱码问题
这段Rust代码使用egui框架创建了一个GUI窗口应用。主要功能包括:1) 设置400x300像素的窗口;2) 加载项目根目录下的simsun.ttc字体文件;3) 显示包含中英文混合的标题和标签。核心实现要点:通过eframe构建原生窗口,使用Arc线程安全共享字体数据,采用即时模式UI渲染,并实现自定义字体加载功能。代码遵循Rust最佳实践,包括错误处理和结构体默认实现。
2025-08-20 15:57:06
630
原创 rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(一)基本代码
本文展示了一个使用Rust的egui框架创建简单GUI应用的示例。代码配置了400x300像素的窗口,并在中央面板显示标题和文本。主要依赖eframe 0.32.1作为窗口封装,实现了一个基础的App结构体,通过实现eframe::App trait定义界面内容。这个示例演示了egui框架的基本用法,包括窗口设置、面板创建和文本显示功能。
2025-08-20 15:44:18
522
原创 rust区块链学习完整代码(逐行注释)2025年8月最新
本文介绍了一个基于Rust 1.88版本的区块链实现方案。项目采用模块化设计,包含核心库(core)、工具库(utils)和主程序(main)三个部分。核心库实现了区块(Block)和区块链(BlockChain)结构,工具库提供了序列化和哈希计算功能,主程序则演示了创建区块链、添加区块和遍历打印的操作。项目使用Cargo进行依赖管理,通过workspace组织代码结构,实现了创世区块创建、新区块添加和区块链遍历等基本功能。该实现展示了区块链技术的核心概念,包括区块哈希计算、链式存储结构等关键技术点。
2025-08-14 22:29:07
298
原创 Rust语言序列化和反序列化vec<u8>,serde库Serialize, Deserialize,bincode库(2025年最新解决方案详细使用)
本文介绍了在Rust中使用serde和bincode库进行数据序列化/反序列化的方法。首先配置Cargo.toml引入依赖,然后定义了两个核心函数:my_serialize将实现Serialize+Encode的类型转为字节向量,my_deserialize从字节切片还原满足DeserializeOwned+Decode的类型。文章展示了如何通过派生宏为Person结构体自动生成序列化特性实现,并提供了使用示例。关键点包括组合使用serde和bincode的特性、处理编解码结果以及结构体自动派生实现。
2025-08-08 17:19:37
552
原创 go语言gui窗口应用之fyne框架-动态添加、删除一行控件(逐行注释)
【代码】go语言gui窗口应用之fyne框架-动态添加、删除一行控件(逐行注释)
2025-01-22 14:28:21
674
原创 go语言gui窗口应用之fyne框架-自定义容器实现自定义布局,更灵活的显示控件
通过上述,可以看出,要实现自定义容器,关键是自定义布局,在 fyne 中,自定义布局,只要实现fyne包下Layout接口即可,以下为Layout// 布局接口// 通过遍历[]CanvasObject,获取每个控件,设置每个控件大小和位置// 设置容器总大小(宽,高)注意:自定义容器中控件宽、高,可能受自定义容器的外部容器影响,修改控件宽、高时,可能没有效果,需要对外部容器也要做相应操作。可以通过查看fyne中container源码定义的布局,扩充自定义布局功能。
2025-01-16 16:54:35
752
原创 go语言并发读写数据队列,不停写的同时,一次最多读取指定量数据(逐行注释)
【代码】go语言并发读写数据队列,不停写的同时,一次最多读取指定量数据(逐行注释)
2024-12-15 21:08:42
346
100以内(12-99)加减法练习(带竖式)手动无限刷新一次打印1张A4
2023-05-29
随机生成100以内两位数加法、两位数减法练习题,可直接打印两张A4纸(双击空白无限刷新)
2023-05-25
go-sql-driver.zip
2021-11-26
斐波纳契时钟
2015-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅