13 个版本
0.6.2 | 2023年4月2日 |
---|---|
0.6.1 | 2023年4月2日 |
0.5.2 | 2021年3月6日 |
0.4.0 | 2020年6月19日 |
0.1.1 | 2020年4月12日 |
在 GUI 中排名 84
每月下载次数 24
在 2 crates 中使用
11MB
217K SLoC
LVGL - Rust 中的开源嵌入式 GUI 库
LVGL 提供了您在嵌入式系统上创建图形用户界面(GUI)所需的一切,包括易于使用的图形元素、美观的视觉效果和低内存占用。
LVGL 默认与 #![no_std] 环境兼容。
Rust 到 WASM 演示 · 官方 LVGL 网站 · C 库存储库 · 官方实时演示
系统构建依赖项
为了构建 lvgl
项目,您需要安装以下系统依赖项
$ sudo apt install build-essential llvm clang
如果您想构建示例,则需要安装 SDL2。
$ sudo apt install libsdl2-dev
用法
使用以下内容编辑您的 Cargo.toml
文件依赖项
$ cargo add lvgl
构建需要设置以下环境变量
DEP_LV_CONFIG_PATH
:包含用于配置 LVGL 库的lv_conf.h
头文件的目录的路径。- (可选)
LVGL_FONTS_DIR
:用于 LVGL 的自定义字体生成的目录。请参阅文档以了解用法。 - (可选)
LVGL_INCLUDE
:在构建时使用drivers
功能时需要包含的 C 头文件,用逗号分隔。默认为/usr/include,/usr/local/include
。 - (可选)
LVGL_LINK
:在构建时使用drivers
功能时需要链接的 C 库,用逗号分隔。默认为SDL2
。
我们建议将 lv_conf.h
文件放在项目的根目录中。如果是这样,构建项目的命令将是
$ DEP_LV_CONFIG_PATH=`pwd` cargo build
为嵌入式环境构建
我们在构建时使用bindgen
生成LittlevGL的绑定。当构建为no_std
时,Cargo存在一个问题,因此我们需要使用一种变通方法来构建"lvgl-rs"。Cargo中的主要问题正在通过rust-lang/cargo#7915进行跟踪。
$ DEP_LV_CONFIG_PATH=`pwd` cargo build -Zfeatures=build_dep
在构建裸机目标时,必须同时启用unsafe_no_autoinit
特性。在Cargo.toml
中查看其文档以了解使用说明。
LVGL全局分配器
提供了一个利用LVGL内存分配器的Rust全局分配器,但默认未启用。可以通过特性lvgl_alloc
启用。这将使所有动态内存都由LVGL内部内存管理器分配。
运行演示
针对macOS用户的提示:在运行演示之前,请确保您的机器已安装libsdl。要安装它,请使用HomeBrew。
$ brew install sdl2
首先,请确保拉取lvgl-rs
子模块。
$ git submodule init
$ git submodule update
然后运行demo
示例。
$ DEP_LV_CONFIG_PATH=`pwd`/examples/include cargo run --example demo --features="alloc"
特性支持
绑定仍在开发中。LVGL有许多功能需要通过lvgl-rs
公开。在本节中,您可以检查目前实现了哪些功能。
特性
影响库使用的一般LVGL特性的列表。
- 显示:我们使用
embedded_graphics
库将图形绘制到显示,同时使用lv_drivers
。您可以使用lvgl-rs
与任何embedded_graphics
支持的显示以及由lv_drivers
支持的显示一起使用。注意:lv_drivers
的支持目前是实验性的。 - 事件:您可以在小部件对象中监听和触发事件。
- 样式:您可以在任何公开对象中设置样式。我们仍然缺少定义全局基本样式的可能性。
- 输入设备:可以使用
lv_drivers
支持的输入设备,并为embedded_graphics
指定自定义处理程序。目前,仅支持指针输入设备。注意:lv_drivers
的支持目前是实验性的。 - 字体:如果启用了
nightly
特性,则LVGL中内置的所有字体都可以在夜间Rust中使用。还可以将自定义字体编码到C文件中(请参阅font
模块的文档)。 - 图像
- 文件系统
- 动画
- 任务
小部件
当前实现的小部件可能缺少一些功能。如果您想要使用的小部件未公开或缺少您想要使用的功能,请发送Pull Request或打开一个问题。
依赖关系
~0.6–4MB
~68K SLoC