我如何处理 GTK+3 中的键盘事件?
How do I handle keyboard events in GTK+3?
我应该使用什么 signals/functions 在 GTK+3 中获取键盘输入?
我环顾四周,我所知道的唯一教程似乎涵盖了 GTK+3 (zetcode and gnome developer)。
谁能给我指出正确的方向?
我将在这里总结一下如何在 GTK3 中处理键盘事件,希望对您有用,因为我在其他地方找不到它。
假设您正在使用 GTK+3,并且您希望应用程序在您按下 space 键时执行某些操作。这就是你的做法:
首先为你的[=27启用#GDK_KEY_PRESS_MASK掩码=]Gdk.Window:
gtk_widget_add_events(window, GDK_KEY_PRESS_MASK);
然后将 window 与 keyboard_press() 函数连接起来:
g_signal_connect (G_OBJECT (window), "key_press_event",
G_CALLBACK (my_keypress_function), NULL);
定义你的keyboard_press()一旦space 键 已被按下:
gboolean my_keypress_function (GtkWidget *widget, GdkEventKey *event, gpointer data) {
if (event->keyval == GDK_KEY_space){
printf("SPACE KEY PRESSED!");
return TRUE;
}
return FALSE;
}
是
g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (on_key_press), NULL);
我应该使用什么 signals/functions 在 GTK+3 中获取键盘输入?
我环顾四周,我所知道的唯一教程似乎涵盖了 GTK+3 (zetcode and gnome developer)。
谁能给我指出正确的方向?
我将在这里总结一下如何在 GTK3 中处理键盘事件,希望对您有用,因为我在其他地方找不到它。
假设您正在使用 GTK+3,并且您希望应用程序在您按下 space 键时执行某些操作。这就是你的做法:
首先为你的[=27启用#GDK_KEY_PRESS_MASK掩码=]Gdk.Window:
gtk_widget_add_events(window, GDK_KEY_PRESS_MASK);
然后将 window 与 keyboard_press() 函数连接起来:
g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (my_keypress_function), NULL);
定义你的keyboard_press()一旦space 键 已被按下:
gboolean my_keypress_function (GtkWidget *widget, GdkEventKey *event, gpointer data) { if (event->keyval == GDK_KEY_space){ printf("SPACE KEY PRESSED!"); return TRUE; } return FALSE; }
是 g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (on_key_press), NULL);