キーボード入力2010年2月11日 | |
![]() ファイル使い方ウインドウにフォーカスしてキーボードのキーを押すと、メッセージが表示されます。 内容キーボードの入力を拾うには、次のようにコールバック関数を設定します。 g_signal_connect(win, "key-press-event", G_CALLBACK(keyPress), NULL); g_signal_connect(win, "key-release-event", G_CALLBACK(keyRelease), NULL);
"key-press-event", "key-release-event" のコールバック関数の第 2 引数 event の event->keyval を調べれば、どのキーが押された/離されたかがわかります。gdk_keyval_name() を使うと、キーを表わす文字列が得られます。
printf("%s\n", gdk_keyval_name(event->keyval));
どのキーが押された/離されたかを調べるには、以下のようにします。
#include <gdk/gdkkeysyms.h>
...
gboolean keyPress(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
switch(event->keyval){
case GDK_Left:
...
break;
case GDK_Up:
...
break;
...
case GDK_a:
...
break;
case GDK_b:
...
break;
case GDK_Return:
...
break;
...
詳細は gdk/gdkkeysyms.h を参照してください。 | |
| PENGUINITIS | |