Pergunta

Eu estou brincando com gtkD (uma ligação para GTK + D)

Eu tenho um objeto window, instância de gtk.MainWindow. Eu quero lidar com keypresses nele.

  • Como?
  • Como faço para lidar com teclas especiais (por exemplo, teclas de seta, PgUp / PgDn etc)?

PS Eu sei que esses tipos de perguntas podem ser respondidas com o Google e outras coisas, mas eu vi muito mais perguntas "mais simples" na stackoverflow, então achei pedindo não dói.

Além disso, às vezes, as coisas básicas tendem a ser enterrado sob páginas de documentação.

Foi útil?

Solução

Aqui está o código de exemplo que pode ajudar

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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top