2017-05-21 33 views
0

GTK + 3でキーボード入力を得るために使用する信号/関数は何ですか?GTK + 3でキーボードイベントを処理するにはどうすればよいですか?

私は、GTK + 3(zetcodegnome developer)のカバーについて知っている唯一のチュートリアルは、それをカバーしていないようです。

誰でも正しい方向に向けることができますか?

+0

ありがとうございます - 私はそれを行ってくれます! – PintoDoido

+0

@xingそれを回答に入れたいかもしれません – cubrr

答えて

1

アドバイスをいただきありがとうございました。本当に助かりました。私は失われてしまったので、私の質問はCコミュニティの一部の伝統的なdownvotingを免れるにはあまりにも一般的すぎるでしょう。ここでは、GTK3のキーボードイベントをどのように処理するかを要約します。私はGTK3を他の場所に組み込むことができないので、便利です。

GTK + 3を使用していて、スペースキーを押したときにアプリケーションが何かをしたとします。これは、あなたがそれを行う方法です:あなたはkeyboard_pressでウィンドウを接続-Then

gtk_widget_add_events(window, GDK_KEY_PRESS_MASK); 

はあなたGdk.Windowため#GDK_KEY_PRESS_MASKマスクを有効に-first ()関数:

g_signal_connect (G_OBJECT (window), "keyboard_press", G_CALLBACK (on_key_press), NULL); 

-defineあなたkeyboard_press()何かにスペースキーが押された後:

gboolean my_keypress_function (GtkWidget *widget, GdkEventKey *event, gpointer data) { 
    if (event->keyval == GDK_KEY_space){ 
     printf("SPACE KEY PRESSED!") 
     return TRUE; 
    } 
    return FALSE; 
} 
0

それは g_signal_connect(G_OBJECT(ウィンドウ)、 "key_press_event" だ、G_CALLBACK(on_key_press)、NULL );

+0

少しの要約と一緒にこの関数のドキュメントのソースにリンクを追加することをお勧めします – K3v1n

+0

答えにいくつかの説明を追加してください。 –

関連する問題