我目前在Rust应用程序中使用sdl2(0.35.2)来检测关键事件,但它似乎只触发Event::Quit,而不触发其他事件.我有一个非常简单的例子,就像这样
use sdl2;
use sdl2::event::Event;
use sdl2::keyboard::Keycode;
fn main() {
let sdl_context = sdl2::init().unwrap();
let mut event_pump = sdl_context.event_pump().unwrap();
'event_loop:loop {
for event in event_pump.poll_iter() {
match event {
Event::Quit { .. } => {
println!("Quit"); break 'event_loop;
},
Event::KeyDown { keycode:Some(Keycode::Escape), .. } => {
println!("Escape"); break 'event_loop;
},
Event::KeyDown { .. } => {
println!("KeyDown Triggered");
},
_ => {}
}
}
}
}
但两个Event:KeyDown匹配从不触发,只能获得Event::Quit以触发Ctrl+C
.我在一个基本的终端上用Debian做这件事.