What signals/functions should I use to get keyboard input in GTK+3?
I have looked around and the only tutorials I know of that cover GTK+3 (zetcode and gnome developer) don't seem to cover that.
Anyone can point me in the right direction?
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs).
Description. A GtkWindow is a toplevel window which can contain other widgets. Windows normally have decorations that are under the control of the windowing system and allow the user to manipulate the window (resize it, move it, close it,...).
I will summarize here how to handle keyboard events in GTK3, which I hope will be useful since I cannot find it put together anywhere else.
Imagine you are using GTK+3 and you want your application to do something when you press the space key. This is how you do it:
First enable the #GDK_KEY_PRESS_MASK mask for your Gdk.Window:
gtk_widget_add_events(window, GDK_KEY_PRESS_MASK);
Then you connect the window with the keyboard_press() function:
g_signal_connect (G_OBJECT (window), "key_press_event",
G_CALLBACK (my_keypress_function), NULL);
Define your keyboard_press() to something once the space key has been pressed:
gboolean my_keypress_function (GtkWidget *widget, GdkEventKey *event, gpointer data) {
if (event->keyval == GDK_KEY_space){
printf("SPACE KEY PRESSED!");
return TRUE;
}
return FALSE;
}
it's g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (on_key_press), NULL);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With