Das „funktioniert“, weil Du Deinen „Slot“ "keyPressEvent()" genannt und damit die Ereignismethode in einem
anderen Steuerelement (wahrscheinlich Dein "QMainWindow" o.ä.) überschrieben hast. Diese Methode wird zwar niemals durch das (nicht existierende) Signal aufgerufen, wohl aber immer dann, wenn ein Tastaturereignis in dem Steuerelement auftritt, in dessen zugehöriger Klasse Du diesen „Slot“ implementiert hast. Deswegen erhältst Du auch nicht alle Tastaturereignisse, eben weil diese
nicht aus dem "QTextEdit" kommen, sondern aus einem
anderen Steuerelement.
Ich weiß nicht, wo Du diesen Ansatz gefunden hast, doch Du solltest davon absehen, weitere Beispiele von der betreffenden Seite zu übernehmen. Stattdessen empfiehlt sich die Lektüre der Dokumentation, insbesondere der Artikel
The Event System und
Signals & Slots, um den Unterschied zwischen Signalen und Ereignissen zu verstehen.
Diese Lektüre führt zur Einsicht, dass Du von "QTextEdit" ableiten, und in der abgeleiteten Klasse "keyPressEvent()" überschreiben musst, um Tastaturereignisse in einem Texteingabefeld vollständig abzufangen. (
Beispiel, zwar nicht speziell für QTextEdit, aber das Prinzip ist allgemeiner Natur).