Rust - GUI의 Windows 표시하기

출처

기본적으로 conrod_glium/examples/hello_world.rs 를 참고로 만들었다.
다만 이 샘플 코드는 여러가지 처리가 들어 있어 단순히 Window를 표시하는 것 이상의 일을 하고 있어서 Window를 표시만 하는 최소한의 코드를 모색하였다.

1. Project 작성

우선 실행 프로그램을 만드는 Project의 모델을 만든다. 이름은 rust_gui 이다.

cargo new rust_gui --bin
cd rust_gui

2. 코드 쓰기

Cargo.toml 에 추가
Cargo.toml

[dependencies]
conrod_glium = "0.68.0"
glium = "0.25.0"

src/main.rs

extern crate conrod_glium;
extern crate glium;

fn main() {
    println!("Hello, world!");
    let mut event_loop = glium::glutin::EventsLoop::new();
    let window = glium::glutin::WindowBuilder::new()
        .with_title("Hello Conrod!")
        .with_dimensions((400, 200).into());
    let context = glium::glutin::ContextBuilder::new()
        .with_vsync(true)
        .with_multisampling(4);
    let display = glium::Display::new(window, context, &event_loop).unwrap();

    let mut events = Vec::new();
    'render: loop {
        events.clear();
        event_loop.poll_events(|event| { events.push(event);});

        if events.is_empty() {
            event_loop.run_forever(|event| {
                events.push(event);
                glium::glutin::ControlFlow::Break
            })
        }
    }
}

3. 실행

cargo run 

아무 것도 없는 Window가 표시되면 성공이다.

image.png 참고로, Close 버튼을 클릭해도 이벤트를 핸들링 하지 않고 있어서 종료하지 않는다.
CTRL+C 등으로 종료한다.

GUI 프로그래밍을 위해 사용한 라이브러리는 conrod 이다.


이 글은 2019-12-02에 작성되었습니다.