Reputation: 594
Good morning, guys. I have a Gtk.Entry and I need when an event is pressed when a key is pressed. Probe with https://valadoc.org/gtk+-3.0/Gtk.Widget.key_press_event.html
But I do not know how to use it.
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 ();
}
help me pls
Upvotes: 1
Views: 754
Reputation: 4104
Your Gtk.Widget key_press_event signal handler is correct but you missed the return value. The method expects the return of a boolean which should be:
true to stop other handlers from being invoked for the event. false to propagate the event further.
Try adding it as:
private bool capture_kilometer (Gdk.EventKey key )
{
number_to_calc = kilometer.get_text ();
calc_kilometer_all ();
return false;
}
Alternatively you can use a lambda expression as :
kilometer.unit_entry.key_press_event.connect ((key) => {
number_to_calc = kilometer.get_text ();
calc_kilometer_all ();
return false;
});
Upvotes: 3