ich kann wunderbar meine Tastatureingaben abfangen, indem ich einen EventFilter in meinem Konstruktor bekannt gebe und die entsprechende Methode implementiere.
Nun möchte ich jedoch jeden Tastendruck wissen, auch wenn er eintrifft, während sich der Mauszeiger außerhalb des GUI-Fensters befindet.
Kann mir jemand sagen was ich dafür anders machen muss? Mein bisheriger Code sieht in etwa so aus:
Aua. Für was gibt es denn die ganzen *Event()-protected-Methoden in QWidget, und warum sind die auch noch virtual?
DIE solltest du implementieren! Bei einem KeyEvent implementierst du nach Lust und Laune keyPressEvent und/oder keyReleaseEvent. EventFilter ist interessant, wenn du ein Widget verwendest und bestimmte Events, die dieses Widget erhält, abfangen willst.
Und ein Widget erhält so lange Events, wie es Fokus hat. Wenn du "Fokus follows Mouse" in deinem WindowManager eingeschlaten hast, verliert dein Fenster den Fokus, sobald die Maus dieses verlässt.
Qt selber wird nur auf Klick den Fokus ändern. So kannst du die Maus aus nem TextEdit rausnehmen, und trotzdem tippen.
Und noch als kleiner Tipp, falls es dann mehrere Keys gibt, die abgefragt werden sollen: Eine switch/case Konstruktion ist da um einiges übersichtlicher