Обработка нажатий клавиш в GTK+ (gtkD)
-
05-09-2019 - |
Вопрос
Я играю с 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);
Не связан с StackOverflow