Обработка нажатий клавиш в GTK + (gtkD) - PullRequest
2 голосов
/ 24 мая 2009

Я играю с gtkD (D-привязка для GTK +)

У меня есть window объект, экземпляр gtk.MainWindow. Я хочу обрабатывать нажатия клавиш на нем.

  • Как?
  • Как мне работать со специальными клавишами (например, клавишами со стрелками, pgup / pgdn и т. Д.)?

PS Я знаю, что на такие вопросы можно ответить с помощью Google и прочего, но я видел гораздо более "простые" вопросы по stackoverflow, поэтому я решил, что спрашивать не повредит.

Кроме того, иногда основные вещи, как правило, скрываются под страницами документации.

1 Ответ

1 голос
/ 24 мая 2009

Вот пример кода, который может помочь

import gdk.Keysyms; //keys enums are defined here

private void func(Button sender)
{
    //button pressed
}

but.addOnClicked(&func);

private bool func2(GdkEventKey* ev, Widget sender)
{
    if(ev.keyval == GdkKeysyms.GDK_Tab) 
        return true; //we handle Tab ourselves and prevents default behaviour
    else
        return false; //we didnt handle it so gtk does default behaviour
}

win.addOnKeyPress(&func2);
...