Alain
Alain

Reputation: 594

how to use key_press_event on Gtk and Vala

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

Answers (1)

José Fonte
José Fonte

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

Related Questions