7 个版本 (4 个重大变更)
0.23.0 | 2023 年 6 月 15 日 |
---|---|
0.22.0 | 2023 年 3 月 18 日 |
0.21.0 | 2023 年 3 月 10 日 |
0.20.1 | 2022 年 11 月 12 日 |
0.19.1 | 2022 年 8 月 25 日 |
#351 在 GUI
用于 tauri-egui
1.5MB
31K SLoC
eframe_tao:为 tao 定制的 egui
框架
eframe_tao
是对 eframe
的修改,使用 tao
而不是 winit
。
eframe
是使用 egui
编写应用的官方框架库。应用可以编译为本地运行(跨平台)或编译为网页应用(使用 WASM)。
要开始使用,请参阅 示例。要了解如何为网页和本地设置 eframe
,请访问 https://github.com/emilk/eframe_template/ 并按照那里的说明进行操作!
还有一个教程视频在 https://www.youtube.com/watch?v=NtUkr_z7l84。
有关如何使用 egui
的信息,请参阅 egui 文档。
eframe
使用 egui_glow_tao
进行渲染,在本地使用 egui-tao
。
要在 Linux 上使用,首先运行
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev
您需要使用 edition = "2021"
,或者在您的顶层 Cargo.toml
文件的 [workspace]
部分中设置 resolver = "2"
。有关更多信息,请参阅此链接。
替代方案
您还可以使用 egui_glow
和 winit
来构建自己的应用程序,如https://github.com/emilk/egui/blob/master/crates/egui_glow/examples/pure_glow.rs中所示。
在网页上运行egui时的问题
eframe
使用 WebGL(通过 glow
)和 WASM,以及其他几乎来自网页技术栈的内容。这有一些好处,但也产生了一些挑战和严重的缺点。
- 渲染:在网页上实现像素级的渲染非常困难。
- 搜索:您无法像普通网页那样搜索 egui 网页。
- 在移动设备上显示屏幕键盘:没有 JS 函数可以做到这一点,所以
eframe
通过添加一些不可见的 DOM 元素来伪造它。这并不总是有效。 - 移动文本编辑不如普通网页应用程序。
- 无障碍性:有一个用于
eframe
的实验性屏幕阅读器,但必须明确启用。没有 JS 函数可以询问“用户是否需要屏幕阅读器?”(由于用户跟踪/完整性问题,可能不应该有这样的函数)。 - 没有与浏览器颜色和字体设置的集成。
在许多方面,eframe
正试图让浏览器做它未被设计去做的事情(尽管浏览器供应商可以做很多事情来改善像 egui 这样的库的工作方式)。
建议使用 eframe
的场景是性能和响应性比无障碍性和移动文本编辑更重要的网页应用程序。
配套的 crate
并非所有的 rust crate 在编译为 WASM 时都能正常工作,但这里有一些设计得既能在本地运行也能作为 WASM 运行的有用 crate。
名称
eframe
中的 frame 既是您的 egui
应用程序所在的框架,也是“框架”(frame
是一个框架,egui
是一个库)。
依赖关系
~5–45MB
~708K SLoC