rust-constructor 2.6.0

A cross-platform GUI framework built on egui, the simplest way to develop GUI projects in Rust.
Documentation
# `Rust Constructor V2`

## 基于`egui`构建的跨平台`GUI`框架, 用`Rust`开发`GUI`项目最简单的方式

[![作者: ChepleBob](https://img.shields.io/badge/作者-ChepleBob-00B4D8)](https://github.com/ChepleBob30)
[![语言: Rust](https://img.shields.io/badge/语言-Rust-5F4C49)](https://www.rust-lang.org/)
[![许可证: MIT](https://img.shields.io/badge/许可证-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![版本](https://img.shields.io/badge/版本-v2.6.0-421463)](https://github.com/ChepleBob30/Rust-Constructor/releases)

[English]./README.md | 简体中文

---

`Rust Constructor`是开源项目,但与`egui`开发组无直接关系!

## 目录

- [版本更新信息]#版本更新信息
- [简介]#简介
- [快速上手]#快速上手
- [创造Rust Constructor的目的]#创造rust-constructor的目的
- [常见问题]#常见问题
- [许可证]#许可证
- [尾声]#尾声

---

## 版本更新信息

- 目前的最新版本为`v2.6.0 排版大革命`。主要更新了以下内容:
  - 添加`ResourcePanel`资源,可以对资源进行自动排版、锁定显示范围、拆分窗口等功能。
  - 移除了`RustConstructorResource``reg_render_resource`方法,取而代之的是`active``modify_active`方法。
  - 优化了活跃资源管理逻辑,现在可以通过`App``print_resource_active_info`方法直接打印活跃资源的信息。
  -`BasicFrontResource`扩展了大量方法。
  - 所有基本前端资源中的`x_grid``y_grid`重命名为`x_location_grid``y_location_grid`  - 所有基本前端资源扩展了`x_size_grid``y_size_grid`字段,用于快速设置资源大小。
  - 扩展了一系列枚举用于辅助资源调用。
  - 所有资源扩展了`active`字段,用于标记是否调用资源。
  - 将部分资源原本在`add`方法中需要传递的字段迁移到了结构体内部。
  - 所有基本前端资源添加了`panel_name``panel_layout``allow_scrolling`,用于自定义资源在资源板中的样式。
  - 所有基本前端资源扩展了`clip_rect`字段,用于控制资源显示范围,超出的部分不会显示出来。
  - `Text`添加了文本框功能,现在超出指定尺寸的文本会被截断并用...替代。
  - `Text`扩展了`actual_size``origin_size`字段,用于获取文本渲染部分实际尺寸和文本框原始尺寸。
  - `MouseDetector`现在可以检测鼠标滚动量了。
  - 为部分资源扩展了字段以适应`PositionConfig`  - 将所有`add`方法集合成`add_resource`方法,可以自动根据资源类型执行操作并添加到资源列表中。
  - 更新了`get_resource_mut`的返回值。
  - 扩展了`RustConstructorError`以适应新资源。
  - 完善了部分代码。

---

## 简介

- `Rust Constructor`是一个基于egui搭建的Rust图形化开发库,包含了计时器、资源存储、错误处理等常用功能。
- `Rust Constructor``2025.2`发布了第一个版本,今天的`Rust Constructor`相较于那时有了翻天覆地的变化。

---

## 快速上手

- 若想引入`Rust Constructor`,请添加`rust_constructor = "x.y.z"`(请根据需要自行替换xyz)到`toml`中。
- 如果想要启动`App`并进行一些简单的操作,建议查阅[egui的官方文档]https://github.com/emilk/egui- 由于`Rust Constructor`的内容量较大且操作复杂,这里不方便完整进行叙述。你可以参考`Rust Constructor`的官方教程[Rust Constructor 指南]https://github.com/ChepleBob30/Rust-Constructor-Guide
---

## 创造Rust Constructor的目的

我们在开发[靶向载体](https://github.com/ChepleBob30/Targeted-Vector)的过程中遇到了一些`egui`无法解决的问题,因此我们拓展了许多工具。为了能让更多人便利地进行开发,我们就创造了`Rust Constructor`。

---

## 常见问题

- Q1: `Rust Constructor`支持哪些平台?

- A1: `macOS``Windows`已确认完全支持,其他平台视`egui`支持情况而定。

- Q2: `Rust Constructor V2`比起`V1`有什么区别?

- A2: 将原先的架构修改为了符合库`crate`的结构,发布在了[crates.io]https://crates.io/上,并添加了官方指南。

- Q3: 为什么我调用资源就会报错?

- A3: 请确保你已经通过`add`方法添加了资源,并且没有拼写错误。

- Q4: 如何修改资源?

- A4: 通过`get_resource_mut`取出资源即可。

- Q5: 如果出现未知的报错提示该怎么办?

- A5: 优先查看`Rust Constructor`源代码中的`RustConstructorError`定义处,找到你触发的问题并修正。

- Q6: 为什么`Rust Constructor``crates.io`上只有`V2`
- A6: `Rust Constructor V0``Rust Constructor V1`本质上是一个臃肿的项目,有很多冗余的功能和无意义的代码,所以并未发布。

---

## 许可证

[MIT](./LICENSE-MIT) © 2025 ChepleBob

## 尾声

如果你喜欢这个项目,请在`GitHub`上给我点个`star`。你也可以加入我们的组织[必达](https://github.com/Binder-organize)。