Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top