Expand description
xlui是一个Rust的2D GUI库。目标是利用Rust语言原生构建GUI、体积小(最小第三方依赖),简单易用, 在保证性能的前提下尽量减少CPU的开销。
§目前的控件工作状态如下图

§下面是xlui的最小运行示例
use xlui::*;
fn main() {
let app=XlUiApp::new();
//直接调run()
// app.run().unwrap();
}
struct XlUiApp {
status:String,
count: i32,
}
impl XlUiApp {
fn new()->XlUiApp{
XlUiApp{
count: 0,
status:"这里是Label".to_string()
}
}
fn add(&mut self,_:&mut Button,ui: &mut Ui){
self.count += 1;
self.status=format!("count: {}", self.count);
}
fn reduce(&mut self,_:&mut Button,ui: &mut Ui){
self.count-=1;
self.status=format!("count: {}", self.count);
}
}
//实现App trait
impl App for XlUiApp {
fn draw(&mut self, ui: &mut Ui) {
ui.add(Label::new("hello").with_id("status"));
ui.horizontal(|ui| {
ui.add(Button::new("+").width(30.0).height(30.0).connect(Self::add));
ui.add(Button::new("-").width(30.0).height(30.0).connect(Self::reduce));
});
}
fn update(&mut self, ui: &mut Ui) {
let status:&mut Label=ui.get_widget("status").unwrap();
status.set_text(&self.status);
}
fn window_attributes(&self) -> WindowAttribute {
WindowAttribute{
inner_size:(800,600).into(),
..Default::default()
}
}
}- xlui可以在App.update中获取Widget的可变引用,以便修改控件
- update函数是后台接收到系统事件时才会调用,这里不应该直接修改,应根据条件修改。
use xlui::*;
fn update(ui:&mut Ui){
let label:&mut Label=ui.get_widget("my_label").unwrap();
label.set_text("这里是修改后的文本".to_string());
}Modules§
Macros§
Structs§
- Border
- Border
Style - Button
- Button的示例用法
- Check
Box - CheckBox的示例用法
- Circle
- Click
Style - Color
- 颜色
- Combo
Box - ComboBox的示例用法
- Device
- Device
Input - Fill
Style - 控件样式
- Font
- Horizontal
Layout - 水平布局的使用
- Image
- Image的示例用法
- Inner
Window - Label
- Label的示例用法
- Layout
Kind - List
View - ListView的是使用示例
- Mouse
Input - Offset
- Padding
- ###Padding的用法
- Popup
- Pos
- Process
Bar - Radio
Button - RadioButton的示例用法
- Radius
- Rect
- Rectangle
- Rectangle的示例用法
- Recycle
Layout - Rich
Text - RichText的示例用法
- Scroll
Widget - Select
Item - SelectItem的示例用法
- Shadow
- Size
- Slider
- Slider的示例用法
- SpinBox
- Slider的示例用法
- Text
Edit - Triangle
- Ui
- Vertical
Layout - 垂直布局的使用
- Window
Attribute