#窗口创建 #跨平台 #x11 #管理

simple-window

一个简单的跨平台窗口创建库

5 个版本

0.2.4 2024年7月17日
0.2.3 2024年7月17日
0.1.1 2024年5月21日

#778GUI

Download history 118/week @ 2024-05-10 137/week @ 2024-05-17 20/week @ 2024-05-24 482/week @ 2024-07-12 109/week @ 2024-07-19 51/week @ 2024-07-26

238 每月下载次数

LGPL-3.0-only

42KB
917

simple_window - 简单的跨平台窗口库。

simple_window 是一个简单、轻量级的跨平台库,用于创建和查询窗口。

注意: 该库目前仅支持 GNU/Linux + X11 和 Windows。计划在未来支持 Wayland。

基本用法

use simple_window::{Window, WindowEvent, WindowInputEvent};
 
fn main() {
    let mut is_running = true;
 
    let mut window = Window::new("Example Window", 200, 200, 400, 600);
 
    while is_running {
        window.poll_messages(|event| {
            match event {
                WindowEvent::Close => is_running = false,
                WindowEvent::Resize(width, height) => println!("Window resized: {}, {}", width, height),
                WindowEvent::Input(event) => match event {
                    WindowInputEvent::MouseMove(x, y) => println!("Mouse moved!: {}, {}", x, y),
                    WindowInputEvent::KeyDown(key) => println!("Key pressed: {}", key.as_str()),
                    WindowInputEvent::KeyUp(key) => println!("Key released: {}", key.as_str()),
                    WindowInputEvent::MouseWheelMove(dz) => println!("Mouse wheel {}", if dz > 0 { "up" } else { "down" }),
                    WindowInputEvent::MouseDown(button) => println!("Mouse {} down.", button.as_str()),
                    WindowInputEvent::MouseUp(button) => println!("Mouse {} up.", button.as_str()),
                },
            }
        });
    }
}

支持

该库旨在仅支持 GNU/Linux & Windows。我完全没有打算添加对 MacOS 的支持,但我愿意接受 pull requests。

文档

请访问 docs.rs 页面以获取文档。

依赖项

~0.1–9MB
~63K SLoC