如何在Gtk和Vala上使用key_press_event

时间:2017-08-17 21:09:23

标签: gtk vala

早上好,伙计们。 我有一个Gtk.Entry,当按下一个键时按下一个事件我需要。 探究https://valadoc.org/gtk+-3.0/Gtk.Widget.key_press_event.html

但我不知道如何使用它。

kilometer.unit_entry.key_press_event.connect (capture_kilometer);


private bool capture_kilometer (Gdk.EventKey key )
{
    number_to_calc = kilometer.get_text ();
    calc_kilometer_all ();
}

帮帮我吧

1 个答案:

答案 0 :(得分:3)

您的Gtk.Widget key_press_event信号处理程序是正确的,但您错过了返回值。该方法需要返回一个布尔值,该布尔值应为:

  

如果要阻止为事件调用其他处理程序,则为true。假的   进一步宣传这一事件。

尝试将其添加为:

private bool capture_kilometer (Gdk.EventKey key )
{
    number_to_calc = kilometer.get_text ();
    calc_kilometer_all ();
    return false;
}

或者,您可以将lambda表达式用作:

kilometer.unit_entry.key_press_event.connect ((key) => {
    number_to_calc = kilometer.get_text ();
    calc_kilometer_all ();
    return false;
});