2009-05-23 5 views
2

Ich spiele um mit gtkD (D für GTK + Bindung)Handhabung Tastendrücke in GTK + (gtkD)

Ich habe eine window Objekt, eine Instanz von gtk.MainWindow. Ich möchte mit den Tasten darauf umgehen.

  • Wie?
  • Wie gehe ich mit speziellen Tasten (z. B. Pfeiltasten, Pgup/Pgdn usw.)?

PS weiß, dass ich diese Art von Fragen kann mit Google und Sachen zu beantworten, aber ich habe viel „einfacher“ Fragen auf Stackoverflow gesehen, also dachte ich, frage nicht weh tut.

Außerdem, manchmal, grundlegende Dinge neigen dazu, unter Seiten der Dokumentation begraben werden.

+0

Ja, es war actaully eine leichte Jagd für diejenigen, aber ausführbare Größe bleibt viel kleiner als dwt entweder so nicht aufgebläht. Hat die unten stehende Frage Ihre Frage beantwortet? –

+0

Ja, tut mir leid, ich habe es gerade versucht. – hasen

Antwort

1

Hier ist ein Beispielcode, der helfen kann

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

Danke! Obwohl '& func' nicht funktionierte, da es einen Delegierten erwartet. – hasen

+0

Wie meinst du das? Ich habe etwas kompiliert und arbeite jetzt hier, aber in meinem Code sind diese auf meiner Windows-Klasse definiert und rufen Sie die AddOnClicked aus dem ctor. Das ist vielleicht warum. –