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에 작성되었습니다.