17个版本
0.3.61 | 2024年7月16日 |
---|---|
0.3.7 | 2024年7月19日 |
0.2.4 | 2024年7月3日 |
0.1.2 | 2024年7月1日 |
#151 in GUI
每月326次下载
195KB
2K SLoC
AmberWindow
'amberwindow'是一个易于使用的即时模式GUI库,适用于Rust。
使用macroquad作为后端。灵感来源于像DearImgui这样的库。
支持的平台
- Windows / PC
- Linux(未测试)
- MacOS(未测试)
功能
- 易于设置
- 让窗口运行起来很简单
- 提供许多预制的组件供使用
示例
你好,窗口
use amberwindow::WindowManager;
use macroquad::prelude::*;
#[macroquad::main("Hello")]
async fn main() {
let mut windows = WindowManager::new();
loop {
windows.begin("");
windows.update_windows();
next_frame().await;
}
}
你好,世界
use amberwindow::{WindowManager, WindowWidget};
use macroquad::prelude::*;
#[macroquad::main("Hello")]
async fn main() {
let mut windows = WindowManager::new();
let widget = WindowWidget::new();
loop {
if let Some(win) = windows.begin("") {
widget.Text( win, "Hello world");
}
windows.update_windows();
next_frame().await;
}
}
自定义样式
对于所有喜欢DearImgui样式的用户,使用AmberWindow的自定义样式功能可以让您“重新制作”DearImgui。
if let Some(win) = windows.begin("") {
win.name("Debug");
win.style(WindowStyle{
font: font.clone(),
bg_color: Color::from_hex(0x151617),
tb_color: Color::from_hex(0x294a7a),
deselected_tb_color: BLACK,
border_color: BLANK,
selected_border_color: Color::new(1.,1.,1., 0.7),
title_color: WHITE,
scale_color: Color::from_hex(0x294a7a),
minimize_color: WHITE,
close_color: WHITE
});
widget.Text(win, "Hello, world 123", None);
widget.Button(win, "Save");
widget.Slider(win, 0., 100., vec2(win.rect.w - 20.0, 15f32));
widget.Checkbox(win, "Auto update", false);
win.button_style(ButtonStyle{
font: font.clone(),
color: WHITE,
bg_color: Color::from_hex(0x274972),
hover_bg_color: Color::from_hex(0x496994),
pressed_bg_color: Color::from_hex(0x274972)
});
win.slider_style(SliderStyle{
color: WHITE,
bg_color: Color::from_hex(0x163861),
hover_bg_color: Color::from_hex(0x274972),
value_color: SKYBLUE,
});
win.get(3).as_checkbox().bg_color = Color::from_hex(0x274972);
}
这将使其: https://i.imgur.com/du1M7wV.png (不含螃蟹图像.)
依赖项
~11MB
~249K SLoC