2009-05-23 18 views
2

Je joue autour avec gtkD (un D pour la liaison GTK +)presses clés GTK + (gtkD)

J'ai un objet window, instance de gtk.MainWindow. Je veux y manipuler des touches.

  • Comment?
  • Comment traiter des touches spéciales (par exemple, les touches fléchées, pgup/pgdn, etc.)?

PS Je sais que ce genre de questions peut répondre avec Google et d'autres choses, mais je l'ai vu beaucoup de questions « simples » sur stackoverflow, alors je me suis demande ne fait pas mal.

Plus, parfois, les choses de base ont tendance à être enterrées sous les pages de la documentation.

+0

Oui, c'était actaully une légère chasse pour ceux mais taille de l'exécutable reste beaucoup plus petit que tpl donc pas pléthorique non plus. Est-ce que le ci-dessous a répondu à votre question? –

+0

Ouais, désolé je viens de l'essayer maintenant. – hasen

Répondre

1

est un exemple de code ici qui peut aider

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

Merci! Bien que '& func' n'ait pas fonctionné, car il attend un délégué. – hasen

+0

Comment voulez-vous dire? J'ai quelque chose de compilé et de travail en ce moment mais dans mon code ceux-ci sont définis sur ma classe windows et jusqu'à l'appel de l'addOnClicked du ctor. Peut-être que c'est pourquoi. –