Seite 1 von 1

[gelöst] Steuerung über Tastatur

Verfasst: 2. Januar 2006 10:35
von KunoK
Hallo allerseits!
Gibt es ne Möglichkeit einer TableView, ListWidget o.ä. zu sagen, dass falls man eine bestimmte Taste drückt (z.B. Return) ein bestimmter Slot ausgeführt wird? (z.B. Löschen eines Items in ListWidget) Für die Maussteuerung gibts das Signal clicked (u.a.) wenn am ein Item anklickt.
Man kann sich jedoch auch Items per Tastatur auswählen...

Eine Möglichkeit wäre sicher eigene Widgets von den QtWidgets abzuleiten und das keypressEvent neu zu implementieren. Aber dass möchte ich nicht tun, da ich mir meine GUI mit dem Designer zusammenbau und dabei nur auf die Standardwidgets zugreifen kann.

Es muss doch sicher auch die Möglichkeit über Signale dem Widget nachträglich zu sagen, wie es auf einen bestimmten Klick reagieren soll...

Verfasst: 2. Januar 2006 10:59
von Manicboy
es gibt die Signale "keyPressEvent" und "keyReleaseEvent" (manche Tasten reagieren nur auf eines der Signale z.B. RETURN und ENTER)...mit denen kannst du arbeiten und dann per SWITCH auf bestimmte Tasten abfragen und entsprechend reagieren...im ungünstigsten Fall musst du vom QTableView oder entsprechendes ableiten und den/die Event-Handler überladen

Verfasst: 2. Januar 2006 11:17
von KunoK
Aber diese Signale kann ich doch nur verwenden wenn ich von TableView oder ähnlichem ableite, was ich ja eigentlich vermeiden will, da dann keine sinnvolle Arbeit mit dem Designer möglich ist

Verfasst: 2. Januar 2006 12:01
von Manicboy
ja, ok, mag sein, dass es Probleme mit dem Designer gibt, aber dann arbeite ohne den Designer...mache ich auch :-)

Verfasst: 2. Januar 2006 12:28
von Christian81
Das sollte helfen wenn es kein Signal für keypress gibt (was wohl nicht der Fall ist)
http://doc.trolltech.com/4.0/qobject.html#eventFilter

Verfasst: 2. Januar 2006 12:30
von KunoK
Der Designer ist schon ne feine Sache und erspart einem viel Arbeit. Hab jetzt gefunden wies funktioniert: Es gibt im Designer die Option "Promote to Custom Widget" mit der man dann auch abgeleitete Widgets einfügen kann.
In den abgeleiteten Widgets kann ich ja dann die Key-Events neu implementieren.

Das mit dem Event-Filter scheint ja auch ne Alternative zu sein, die aber eben nicht so elegant ist, wie der Weg über Vererbung.

Danke für die Hilfe