How to catch enter key/de
Deutsch English
Enter- und Return-Tastendrücke abfangen
Überblick
Es gibt zahlreiche Anwendungen für das Abfangen von Enter-Tastendrücken, etwa eine Suchfunktion, die ausgelöst wird, wenn man die Enter-Taste drückt. Leider ist das nicht so einfach, wie andere Tasten abzufangen, da die übliche Event-Routine von Qt gewisse Tastendrücke bearbeitet, bevor das eigentliche Programm sie abfangen kann.
Lösung
Qt erlaubt es glücklicherweise, die Event-Routine neu zu implementieren. Dazu benötigen wir eine neue Klasse, die eine Methode beinhaltet, die als Event-Filter eingesetzt werden kann:
Mehr ist auch gar nicht notwendig:
Nun müssen wir noch die Methode implementieren:
Das ging jetzt ein bisschen schnell – daher hier noch eine ausführlichere Erklärung:
Tastendruck?
Erst wird überprüft, ob es sich überhaupt um ein KeyPress-Event handelt. Wenn nicht, soll Qt das Event-Handling übernehmen:
Konvertierung
Als Parameter haben wir ein QEvent erhalten. Daraus kann man aber keine Tastendrücke auslesen. Daher muss das Ganze noch in ein QKeyEvent konvertiert werden:
Enter/Return oder eine andere Taste?
Der Rest ist nicht besonders schwierig – jetzt muss nur noch überprüft werden, ob es sich um Enter handelt oder nicht:
Installation
Nun können wir unseren Event-Handler installieren: