2009-05-23 6 views
2

Я играл вокруг с gtkD (Д связывания для GTK +)Обработка нажатий клавиш в GTK + (gtkD)

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

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

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

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

+0

Да, это была Actaully небольшая охота на тех, но размер исполняемого файла остается гораздо меньше дедвейта так не раздутый либо. Вы ответили ниже на свой вопрос? –

+0

Да, извините, я просто попробовал это сейчас. – hasen

ответ

1

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

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); 
+0

Спасибо! Хотя '& func' не работал, так как он ожидает делегата. – hasen

+0

Как вы это понимаете? У меня есть что-то скомпилированное и работающее прямо сейчас, но в моем коде они определены в моем классе Windows и вызывают addOnClicked из ctor. Может быть, поэтому. –