1个不稳定版本
0.1.0 | 2023年10月4日 |
---|
#790 in GUI
14KB
401 代码行
charm-ui
Charm是一个(WIP)轻量级即时模式GUI框架,具有友好的API,旨在易于使用。
示例
use charm_ui::{App, Color, Window};
use charm_ui::charms::VStack;
use charm_ui::component::Parameter;
pub struct Store {
count: usize,
}
pub fn main() {
let store = Store { count: 127 };
let mut app = App::with_store(store);
let mut window: Window<Store> = Window::with_size((1200, 600))
.title("My first window")
.background((255, 255, 127));
window.set_root_component(
VStack::new()
.size(Parameter::constant((600, 400)))
.padding(Parameter::constant((64, 16)))
.background(Parameter::closure(|store: &Store| {
(store.count as u8, 0, 0)
}))
.add_child(VStack::new().background(Parameter::constant((0, 255, 0)))),
);
app.add_window(window);
app.run().unwrap();
}
后端
Charm目前仅支持SDL2,但图形层已经抽象化,所以很快会有更多的后端可用!
依赖项
~16MB
~345K SLoC